Dari sudut pandang arsitektur komputer, dan dengan peringatan bahwa nomenklatur kadang-kadang bervariasi, terutama ketika ada keluarga arsitektur terkait yang telah berevolusi untuk waktu yang lama, atau ketika departemen pemasaran memutuskan bahwa istilah biasa harus digunakan di negara lain. cara (baik untuk menempatkan produk dalam cahaya yang lebih baik dengan menggunakan nomor yang lebih besar, atau memiliki nomor sederhana untuk membedakan lebih banyak atau lebih sedikit produk terkait).
Sebuah kata memiliki ukuran yang biasanya digunakan untuk operasi bilangan bulat (sering dinyatakan sebagai ukuran bilangan bulat atau register tujuan umum, yaitu bukan alamat atau data, bus internal atau eksternal, bukan register alamat, bukan register indeks). Masalah umum adalah bahwa ketika arsitektur adalah evolusi dari yang sebelumnya, orang sering menyimpan kata untuk ukuran awal dan satu menggunakan "kata ganda" atau "kata quad" untuk apa kata jika Anda melihat arsitektur di isolasi. Secara historis kata-kata tidak selalu merupakan kekuatan dua (saya tahu ukuran: 12, 16, 18, 24, 32, 36, 60, 64 dan saya tidak berpikir pengetahuan saya lengkap).
Word addressable berarti memori dianggap sebagai array kata, dan dengan demikian tidak ada unit yang lebih kecil yang memiliki alamat individual.
Sebuah byte memiliki berbagai definisi. Istilah ini diperkenalkan berarti unit yang digunakan dalam pengkodean karakter pada saat di mana pengkodean multi-byte tidak ada. Ini sering digunakan untuk berarti unit addressable terkecil untuk mesin yang tidak dapat dialamatkan kata (dan selama itu tidak sedikit). Saya kira kedua definisi itu tidak pernah memberikan ukuran yang berbeda. (atau ukuran berbeda dari 6 atau 8 bit). Untuk mesin pengalamatan kata, sering berarti beberapa unit lebih kecil dari kata yang dimiliki mesin tersebut untuk (misalnya PDP-10 - komputer pengalamatan kata 36 bit - memiliki instruksi byte yang dapat memanipulasi ukuran dari 1 hingga 35 atau 36 bit). Saat ini juga sering 8 bit. Seringkali beberapa definisi tersebut secara praktis setara.
Byte addressable mencirikan mesin-mesin di mana memori dianggap sebagai array byte dalam salah satu makna di atas.
Menggigit AFAIK hanya digunakan untuk jumlah 4 bit.
Misalnya seseorang dapat merancang beberapa jenis CPU dan memori baru dan menetapkan byte-nya menjadi 16bit?
Ya, tapi saya tidak yakin apakah akan masuk akal untuk melakukannya jika seseorang menjaga penggunaan CA untuk menggunakan byte untuk sesuatu yang lebih kecil dari kata. Memiliki pengolah 16-bit yang dapat dialamatkan kata tanpa dukungan untuk sesuatu yang lebih kecil dari suatu kata mungkin merupakan pilihan yang baik untuk pengolah tujuan khusus.
Kedua, apa antonim dari kata ini yang saya cari? Halaman-addressable, blok-addressable
Bit-addressable, byte-addressable dan word-addressable adalah satu-satunya istilah yang saya lihat digunakan. Tidak masuk akal untuk membahas hanya unit yang lebih besar dari kata di tingkat arsitektur. Word-addressable saat ini hanya digunakan untuk prosesor tujuan khusus seperti DSP. Saya tidak berpikir bit-addressability telah digunakan untuk hal lain selain tujuan khusus kecuali IBM Stretch.
Tentang pertanyaan utama baru Anda
Apa istilah yang tepat untuk blok memori terkecil yang dapat dialamatkan?
Saya tahu tidak ada yang digunakan dalam Arsitektur Komputer ( byte telah digunakan untuk sesuatu yang lebih kecil di mesin adressable kata), tetapi definisi yang digunakan oleh C untuk byte .
Burroughs B1700 adalah bit addressable (sebenarnya alamat tersebut merujuk pada ruang di antara bit-bit tempat Anda dapat membaca maju atau mundur jumlah bit yang sewenang-wenang). (Jadi bukan hanya IBM's Stretch, yang merupakan kegagalan.)
B1700 dirancang untuk menjadi mesin yang paling fleksibel. Aplikasi tidak dimaksudkan untuk ditulis pada tingkat bit, tetapi lingkungan yang berbeda dibangun untuk gaya aplikasi yang berbeda. Lingkungan ini diprogram dalam mikrokode, menyediakan mesin mesin virtual. Setiap bahasa (sistem SDL untuk OS, COBOL untuk bisnis, FORTRAN untuk COBOL) runtime ditulis sebagai lingkungan mikrokode terpisah. Dengan demikian arsitektur dapat disesuaikan dengan gaya aplikasi apa pun di masa depan.
Wayne Wilner, salah satu desainer, menekankan bahwa mesin-mesin lain saat itu memaksa para programmer untuk berbaring di ranjang Procrustean dengan byte dan kata-kata berukuran tetap. Benar-benar apa yang dibutuhkan setiap lingkungan runtime adalah struktur data yang sesuai dengan aplikasi. Sayangnya, sebagian besar arsitektur mesin saat ini masih Procrustean (dan dengan demikian diprogram dalam bahasa seperti C yang mengekspos struktur mesin ini, daripada mendukung struktur berorientasi masalah).
Bacaan lebih lanjut tentang mesin yang menarik ini dan filosofinya tersedia di:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.590.2624&rep=rep1&type=pdf
dan lebih detail:
http://ianjoyner.name/Files/Wilner.pdf
Jadi mengapa B1700 tidak lagi dibuat?
Burroughs memiliki tiga rentang utama komputer, sistem besar B5000-B7000 (arsitektur ALGOL), sistem menengah B2000-B4000 (arsitektur COBOL), dan sistem kecil B1000 (arsitektur apa pun yang Anda suka).
Sistem besar benar-benar mahal, sampai B5900 yang diberi mikrokode pada prosesor murah untuk menyediakan mesin tumpukan ALGOL. Jack Allweis, perancang B5900 telah menunjukkan bahwa arsitektur sistem besar dengan demikian diperkecil menjadi komputer kecil, tetapi B1700 dirancang untuk menjadi murah dan tidak ditingkatkan.
Dengan demikian B1700 hingga B1900, walaupun sangat sukses pada saat itu, mati karena alasan komersial.
Sistem besar Burroughs masih tersedia sebagai Unisys ClearPath MCP dan bahkan berjalan pada PC Anda sebagai emulasi.
Sebagai catatan kaki lain, IPC pada B1700 adalah rasa sakit antara mesin virtual yang berbeda, tetapi sangat aman (seperti kernel mikro saat ini). Semua sistem besar menjalankan proses dalam lingkungan yang sama di mana data dapat dibagikan dengan cara yang aman, tetapi IPC bersifat langsung. Ini agak antara arsitektur microkernel (Mach) dan non-kernel (Linux). Namun, B5000 adalah mesin yang sangat aman, tetapi juga berkinerja baik.
Keamanan adalah masalah terbesar di industri saat ini, dan sesungguhnya mesin ini harus dihidupkan kembali dan dipelajari untuk menunjukkan jalan ke depan.
sumber
Pertanyaan utama: Apa istilah yang tepat untuk blok memori terkecil yang dapat dialamatkan?
Saya akan menambahkan jawaban lain untuk mengatasinya dengan cara yang berbeda. Dalam perangkat keras elektronik, kami menyebutnya bit - binary digit. Itu adalah entitas yang dapat mewakili dua nilai. Kami biasanya berpikir dalam istilah 0 dan 1, tetapi bisa 3 atau 4, 365 atau 266, -3 atau -4, bahkan 25 atau 37.
Sistem pensinyalan apa pun dapat digunakan untuk merepresentasikan nilai-nilai ini - flag atas, flag bawah, mata terbuka, mata tertutup, + 5v, -5v. Itu tidak penting.
Yang penting adalah bahwa secara filosofis kami mewakili jumlah informasi terkecil yang dapat dibedakan. Ini bisa hidup, mati, atau benar, salah, atau naik, turun, atau 0, 1 - apa pun yang membedakan dua keadaan terpisah. Kami dapat memetakan nilai-nilai ini ke salah satu sistem pensinyalan di atas dan banyak lainnya.
Sekarang pertanyaannya adalah, bagaimana kita dapat menguji dan mengatur sejumlah kecil informasi secara individual? Seperti yang saya katakan di jawaban sebelumnya, B1700 memilih untuk menangani informasi sekecil itu secara langsung.
Namun, sebagian besar mesin memutuskan untuk hanya menangani sejumlah besar informasi. Mari kita pertimbangkan sekelompok empat bit dengan satu alamat. Jadi jika kita mendapatkan nilai 1011 di lokasi kita, bagaimana kita menguji bit kedua dari kiri. Kami menggunakan masker: tes 1011 dan 0100 hanya bit kedua. Jadi bagaimana kita mengatur bit kedua ke 1? Sebuah aritmatika CPU kecil mengatakan nilainya akan 15 atau 1111, sehingga seluruh empat bit ditulis kembali ke memori, meskipun kita hanya benar-benar menetapkan satu bit.
Sekarang ini tidak berguna untuk sebagian besar aplikasi. Sebagian besar aplikasi mewakili data atau informasi, atas, bawah, benar, salah, buka, tutup.
Kami ingin mengatakan hal-hal seperti:
jika terbuka maka ... lain ... akhiri
atau lebih mungkin menerapkannya pada entitas yang lebih besar:
jika pintu terbuka maka - kemungkinan besar 'door.open' ... else ... end
'pintu terbuka' menggambarkan pengalamatan hierarkis. Pengalamatan sistem utama memberikan pintu entitas, dan pintu memiliki pengalamatan sendiri yang memberikan akses ke buka (dan mungkin atribut lainnya).
Sebagian besar set juga memiliki lebih dari dua nilai yang mungkin (satu set dengan satu nilai tidak pernah berubah dan karena itu bahkan tidak perlu representasi, jadi nol bit). Untuk ini kami telah menetapkan set, seperti (kuning, hijau, biru, kabut ungu, merah). Ini mendefinisikan set dan jenis dan jumlah bit yang dibutuhkan yang tepat diberikan oleh jumlah nilai (log2 (jumlah nilai)).
Jadi pengalamatan yang optimal sangat tergantung pada ukuran entitas yang digunakan dalam aplikasi - bahkan mungkin entitas berukuran variabel. Tetapi di sebagian besar perangkat keras alamat tersebut harus diterjemahkan ke ukuran tetap yang didefinisikan perangkat keras. Ini tentu saja bisa memakan biaya dalam hal waktu. Itu juga harus menjadi sesuatu yang dilakukan penerjemah otomatis (kompiler atau penerjemah), bukan seorang programmer, seperti halnya sistem akan menghasilkan kode untuk menguji dan mengatur bit seperti di atas (jika bit tidak langsung dialamatkan).
Poin penting di sini adalah jangan berpikir dalam hal elektronik - elektronik hanyalah cara pemrosesan komputasi yang sangat bagus dan cepat. Tidak ada keajaiban tentang perhitungan elektronik yang memungkinkan untuk melakukan perhitungan yang tidak dapat Anda lakukan sebaliknya. Keajaiban hanya dalam kecepatan. Itulah mengapa abstraksi tingkat rendah seperti bit, byte, word, atau mekanisme pengalamatan perangkat keras (pointer) benar-benar tidak berguna.
sumber
Sistem komputer kami digunakan oleh memori Byte default yang dapat dialamatkan. Satu selnya menunjuk ke informasi 8-bit. Dan ukuran sel tidak tergantung pada panjang prosesor. Dalam memori addressable kata satu sel menunjuk ke satu informasi kata, tetapi panjang kata tergantung pada panjang prosesor. Ketika kita menggunakan kata-kata memori yang dapat dialamatkan daripada itu menciptakan ambiguitas. Jadi komputer kami menggunakan memori byte addressable default.
sumber