สถาปัตยกรรมและคอมพิวเตอร์


    สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture) เป็นวิชาที่กล่าวถึง คุณสมบัติของระบบที่โปรแกรมเมอร์สามารถเห็นได้ชัด ส่วนองค์ประกอบของคอมพิวเตอร์ (Computer Organization) จะกล่าวถึงหน่วยการทำงานและการติดต่อระหว่างกันของหน่วยต่างๆ ภายในคอมพิวเตอร์ ซึ่งต้องใช้ข้อกำหนดทางสถาปัตยกรรมเหมือนกัน เช่น ชุดของคำสั่ง (Instruction Set) จำนวนบิตที่ใช้แทนข้อมูล กลไกของ I/O  เทคนิคการทำ addressing ของหน่วยความจำ เป็นต้น                ในเครื่องไมโครคอมพิวเตอร์ เราจะพบว่าความสัมพันธ์ระหว่างสถาปัตยกรรมและองค์ประกอบของคอมพิวเตอร์จะใกล้เคียงกันหรือไปด้วยกัน การเปลี่ยนแปลงของเทคโนโลยีไม่ได้มีอิทธิพลเฉพาะกับองค์ประกอบของคอมพิวเตอร์เท่านั้น แต่มันยังทำให้สถาปัตยกรรมของมัน(คุณสมบัติของระบบมีประสิทธิภาพมากขึ้นด้วย                   หัวใจหลักของการประมวลผลของคอมพิวเตอร์ ก็คือ CPU ซึ่งทำหน้าที่ประมวลผลข้อมูลเขิงคณิตศาสตร์และเชิงตรรกะ เริ่มจากปี 1946 คอมพิวเตอร์ยุคแรกที่มีชื่อว่า ENIVAC ซึ่งทำงานโดยใช้หลอดไดโอดซึ่งสถานะการทำงานของหลอดพวกนี้มีอยู่ 2 อย่างคือ 1 และ 0 โดยจะมีค่าเป็น 1 เมื่อมีกระแสไหลผ่านและเป็น เมื่อไม่มีกระแสไกลผ่าน จึงเป็นเหตุผลให้คอมพิวเตอร์ใช้เลขฐานสองในการคำนวณ ต่อมาเมื่อวิทยาการก้าวหน้าขึ้นเรื่อย ๆ มีการพัฒนาจากหลอดไดโอดมาเป็นทรานซิสเตอร์ และเป็นวงจรขนาดเล็กที่เรียกว่า IC 
          สิ่งที่ผู้ผลิต CPU พยายามจะเพิ่มก็คือ ประสิทธิภาพในการประมวลผล เนื่องจากภายในซีพียูไม่มีหน่วยเก็บข้อมูลสำหรับปริมาณมาก ๆ ดังนั้นปัจจัยที่มีผลต่อความเร็วของซีพียูคือ ความเร็วในการประมวลผลและความเร็วในการโอนย้ายข้อมูลเท่านั้น (เนื่องจากในยุคก่อน CPU ไม่มี Cache) ซึพียูในนยุคแรก ๆ ประมวลผลด้วยความเร็ว 4.77 MHz และมี CPU BUS กว้าง 8 บิต หรือที่เรียกกันว่า ซีพียูแบบ 8 บิต (Intel 8080, 8088)  คือ ซีพียูเคลื่อนย้ายข้อมูลได้ทีละ 1 ไบต์นั่นเอง และใน CPU ยุคต่อ ๆ มาจึงเปลี่ยนมาเป็นแบบ 16, 32 และ 64 จนถึง 128 และในการเคลื่อนย้ายข้อมูลนั้นเกิดจากการควบคุมของสัญญาณนาฬิกา ซึ่งนับเป็น Clock เช่น ซีพียู 100 MHz หมายถึงเกิดสัญญาณนาฬิกา 100 ครั้งต่อวินาที



1.1 Structure and Function

Function

     คอมพิวเตอร์เป็นระบบที่ซับซ้อน ประกอบไปด้วยส่วนประกอบอิเลคโทรนิคส์เป็นล้านส่วนซึ่งเราไม่สามารถที่จะบรรยายได้หมดทุกชิ้นส่วน แต่เราสามารถทีจะพูดถึงหน้าที่หลัก ๆ ของคอมพิวเตอร์ได้ โดยปกติแล้วหน้าที่สำคัญ ๆ ของคอมพิวเตอร์จะมีอยู่ 4 ประการ คือ
1.        ทำหน้าที่ในการประมวลผลข้อมูล
2.        ทำหน้าที่ในการเก็บข้อมูล
3. ทำหน้าที่ในการเคลื่อนย้ายข้อมูล โดยถ้าเป็นการเคลื่อนย้ายข้อมูลจากอุปกรณ์ภายในคอมพิวเตอร์ไปสู่อุปกรณ์
ภายนอก (peripheral) นั้นเราเรียกกระบวนการนี้ว่า Input/Output (I/O)  และถ้าข้อมูลถูกเคลื่อนย้ายไประยะทางไกล ๆ (เป็นการรับส่งกับ remote device) เราจะเรียกว่าเป็นกระบวนการสื่อสารข้อมูล (Data Communication)
4.       ทำหน้าที่ในการควบคุมอุปกรณ์, ควบคุมระบบภายในคอมพิวเตอร์ และ จัดสรรทรัพยากรต่างๆ ภายในระบบคอมพิวเตอร์








ชนิดของคอมพิวเตอร์
1.        Supercomputer
2.        Mainframe
3.        Minicomputer
4.        Microcomputer
ความแตกต่างของคอมพิวเตอร์ทั้ง 4 ชนิด จะอยู่ที่ขนาดและความสามารถในการทำงาน ซึ่งคอมพิวเตอร์ชนิด

Supercomputer จะเป็นคอมพิวเตอร์ที่มีขนาดใหญ่ที่สุด มีหน่วยความจำ และความสามารถในการประมวลผลสูง มีความละเอียดในการคำนวณเกี่ยวกับตัวเลข หรืองานที่ต้องการความถูกต้องแม่นยำสูง มักใช้ในหน่วยงานที่มีความสำคัญและต้องการความถูกต้องแม่นยำ ส่วน Microcomputer เป็นคอมพิวเตอร์ที่มีขนาดเล็กที่สุดแต่ปัจจุบันประสิทธิภาพการทำงานของมันก็ไม่ได้เล็กเหมือนขนาดของมันแล้ว แต่มันขึ้นอยู่กับว่าสถาปัตยกรรมของคอมพิวเตอร์นั้นมีความซับซ้อนและมีการทำอย่างไรที่จะให้การทำงานของคอมพิวเตอร์เร็วขึ้นและไม่ได้ขึ้นอยู่กับขนาดของเครื่องอีกต่อไป เช่น พัฒนาให้มีหน่วยความจำ (Cache Memory) เพิ่มขึ้นในไมโครโปรเซสเซอร์ หรือ Central Processing Unit (CPU)  พัฒนาให้ CPU มีการประมวลผลหรือการทำงานแบบขนานกัน เป็นต้น






บทที่ 2 โครงสร้างของการติดต่อกันภายในคอมพิวเตอร์

Computer Interconnection Structures


2.1    ส่วนประกอบของคอมพิวเตอร์ (Computer Component)
คอมพิวเตอร์ในรุ่นแรก ๆ นั้นมีการออกแบบขึ้นตามหลักการของ John von Neumann ซึ่งเราเรียกว่าเป็น von Neumann
architecture ซึ่งมีหลักการดังนี้

  1. ข้อมูลและคำสั่งถูกเก็บไว้ในหน่วยความจำ
  2. ข้อความที่เก็บภายในหน่วยความจำถูกกำหนด (addressable) ด้วยตำแหน่ง (location) โดยไม่มีการกำหนดชนิดของข้อมูล
  3. การปฏิบัติการ (execute) เกิดแบบลำดับจากคำสั่งหนึ่งไปยังคำสั่งถัดไป




ภายใน หน่วยความจำ จะประกอบด้วยชุดของที่อยู่ (locations) ซึ่งถูกกำหนดด้วยตัวเลขที่เรียงลำดับจาก 0,1, … แต่ละตำแหน่งจะบรรจุด้วยเลขฐานสองซึ่งสามารถถูกแปลไปเป็นคำสั่งหรือข้อมูล
      ส่วนหน่วย I/O (I/O Modules) จะโอนย้ายข้อมูลจากอุปกรณ์ภายนอกมายัง CPU และหน่วยความจำ และในกรณีที่จะส่งข้อมูลออกไปยังอุปกรณ์ภายนอก จะมี buffers ชั่วคราวไว้ภายในสำหรับเก็บข้อมูลไว้จนกว่ามันจะถูกส่งออกไป

2.1    หน้าที่ของคอมพิวเตอร์ (Computer Function)
หน้าที่พื้นฐานของคอมพิวเตอร์คือทำการกระทำหรือปฏิบัติตามโปรแกรม ซึ่งโปรแกรมที่จะถูกกระทำ หรือ execute นั้น จะ
ประกอบด้วยชุดของคำสั่งที่ถูกเก็บไว้ในหน่วยความจำ CPU จะทำงานโดยการทำตามคำสั่งที่ระบุไว้ในโปรแกรม เริ่มจาก CPU อ่าน (fetches) คำสั่งจากหน่วยความจำหนึ่งคำสั่งต่อหนึ่งหน่วยเวลา และกระทำตามคำสั่งนั้น (execute) และเป็นการทำงานของชุดคำสั่งที่ซ้ำ ๆ กันเป็นไซเคิล ดังนั้น  ไซเคิลของคำสั่ง (instruction cycle) จะประกอบด้วยไซเคิลย่อย ๆ 2 ไซเคิลคือ fetch cycle และ execcute cycle   



The Fetch and Execute Cycles

                เมื่อเริ่มต้นแต่ละ instruction cycle   CPU จะ fetch คำสั่งจากหน่วยความจำ ภายใน CPU จะมีรีจิสเตอร์ที่เรียกว่า program counter (PC) ซึ่งใช้สำหรับเก็บตำแหน่งของคำสั่งถัดไปที่จะถูก fetch และ CPU จะเพิ่ม PC ขึ้นทีละ 1 ทุกครั้งหลังจากคำสั่งถูก fetch แล้วทำให้มันรู้ว่าคำสั่งถัดไปที่มันจะต้อง fetch คือคำสั่งอะไร
                คำสั่งที่ถูก fetch มานั้นจะถูก load เข้าไปใน register ภายใน CPU ที่เรียกว่า Instruction Register (IR) คำสั่งซึ่งอยู่ในรูปของเลขฐานสองที่ระบุว่าจะให้ CPU ทำอะไร CPU จะแปลคำสั่งนั้นและทำงานตามคำสั่ง เราสามารถแบ่งการทำงานหลัก ๆ ของ CPU ได้เป็น 4 ประเภท คือ
·       CPU-Memory   : ข้อมูลอาจจะถูกย้ายจาก CPU ไปยังหน่วยความจำหรือจากหน่วยความจำไปยัง CPU ก็ได้
·       CPU-I/O           : ข้อมูลอาจจะถูกย้ายจาก CPU ไปยังภายนอกโดยผ่าน I/O Module
·       Data Processing  :  CPU จะทำงานทางด้านคำนวณและเปรียบเทียบตรรกะของข้อมูล
·       Control            : ปกติแล้วคำสั่งจะถูกกระทำตามลำดับที่เก็บใน PC  แต่ในกรณีมีการกระโดด (JUMP) ไปยังคำสั่งที่ต้องการ CPU จะต้องเก็บค่าที่อยู่ใน PC ไว้ เพื่อที่จะโหลดตำแหน่งของคำสั่งในการกระโดดมาไว้ที่ PC และทำงาน ตามโปรแกรมของการกระโดดนั้น จนเสร็จสิ้นแล้วจึงจะโหลดค่าที่เก็บไว้นั้นกลับมายัง PC เพื่อทำคำสั่งของโปรแกรมหลักให้จบโปรแกรม




บทที่ 3 ระบบบัส

Bus System

    บัส เป็นลายวงจรอิเล็กทรอนิกส์ทำหน้าที่ในการรับส่งข้อมูลระหว่างไมโครโปรเซสเซอร์กับส่วนอื่น ๆ ของคอมพิวเตอร์ผ่านระบบชุดของสายนำสัญญาณให้ เช่น การส่งผ่านข้อมูลระหว่าง Lan Card กับ CPU เพื่อให้เครืองคอมพิวเตอร์ของเราสามารถติดต่อกับเครื่องอื่นในเครือข่ายได้  อย่างไรก็ตามการส่งข้อมูลระหว่างซีพียูกับแผ่นวงจรเหล่านี้ ถ้าหาก Band Width ต่างกัน เช่น  ซีพียูมีขนาด  32 บิต แต่การ์ดมีขนาด 16 บิต ก็จะทำให้ทำงานได้ช้าลงเนื่องจากเกิดคอขวดในการส่งผ่านข้อมูล

     นอกจากนั้นระบบบัสยังทำการโอนย้ายข้อมูลจากอุปกรณ์หนึ่งไปอีกอุปกรณ์หนึ่ง เช่น การ Copy ข้อมูลจาก Hard Disk ลง Floppy Disk หรือการนำข้อมูลจาก Hard Disk ไปสู่หน่วยความจำ RAM ก็ต้องทำผ่านระบบบัสทั้งสิ้น

3.1  ส่วนประกอบของระบบบัส

                ระบบบัส จะประกอบด้วย
1.        เส้นทาง หมายถึง เสนทางที่ข้อมูลเดินทางผ่าน ส่วนใหญ่จะสังเกตเป็นเส้นบนเมนบอร์ด
2.        ชิปควบคุม ทำหน้าที่ บริหารการเข้าใช้บัสของชิ้นส่วนต่าง ๆ  และทำหน้าที่ป้องกันปัญหาขัดแย้งกันเนื่องจากการแย่งใช้บัสในเวลาเดียวกัน
3.     สล๊อตต่อขยาย เป็นตัวกลางที่ใช้ติดต่อสื่อสารระหว่างเมนบอร์ดกับการ์ดเสริมต่าง ๆ ซึ่งจะถูกออกแบบมาให้ตรงกับระบบบัสนั้น ๆ เช่น  ระบบบัส  PCI ก็จะมีสล๊อต PCI ซึ่งใช้เสียบการ์ดแบบ PCI

3.2  ผลของความเร็วบัส

          จะมีผลกับความเร็วโดยรวมของคอมพิวเตอร์ ยิ่งบัสมีความเร็วสูงเท่าไร และมีจำนวนบิตมากขึ้นเท่าใด ก็จะทำให้เครื่องคอมพิวเตอร์ทำงานเร็วขึ้น (แต่ไม่ได้เป็นแบบเชิงเส้น)  แต่ก็ขึ้นอยู่กับ Noise ด้วย เพราะยิ่งบัสใช้ความเร็ว (ความถี่ของสัญญาณนาฬิกาของบัส) มากขึ้นท่าใด สัญญาณรบกวนก็จะเพิ่มขึ้นเท่านั้น ซึ่งหากสัญญาณรบกวนมากขึ้นก็จะทำให้โอกาสที่ข้อมูลผ่านผ่านบัสผิดพลาดก็จะเพิ่มมากขึ้น  อุปกรณ์ที่ได้รับผลจากการเปลี่ยนแปลงความเร็วของบัส เช่น หน่วยความจำหลัก แคชบนเมนบอร์ด VGA card การ์ดเพิ่มขยาย Hard Disk   เป็นต้น

3.3  ชนิดเส้นทางบัส


ชนิดเส้นทางบัสแบ่งตามสัญญาณที่ส่ง

-          Power Bus  เส้นทางบัสสำหรับจ่ายไฟฟ้า
-          Data Bus  เส้นทางบัสสำหรับระบบข้อมูล
-          Ground Bus  เส้นทางบัสสำรหับสายดิน

ชนิดเส้นทางบัสแบ่งตามข้อมูลที่ส่ง

-          Data Bus  มีทั้งหมด 24 เส้น ใช้สำหรับส่งข้อมูลในรูปของสัญญาณไฟฟ้าเปิดปิด (0,1) โดยสายเหล่านี้จะถูกต่อเข้ากับ
อุปกรณ์ เช่น หน่วยความจำ อแดปเตอร์การ์ด ดังนั้นเมื่อมีการส่งข้อมูล ๆ นั้นก็จะผ่านอุปกรณ์เหล่านั้นทั้งหมด แต่อุปกรณ์ที่รับข้อมูลนี้ต้องมี Address ตรงกับค่าที่กำหนดใน Address Bus
-          Address Bus  มีทั้งหมด 20-32 เส้น ใข้สำหรับส่งข้อมูลเป็นสัญญาณ บอกตำแหน่งที่อยู่หรือแอดเดรสในหน่วยความจำ
จำนวนเส้นของ  Address Bus จะบอกถึงความสามารถในการอ้างถึงหน่วยความจำ ซึ่งจะแตกต่างกันไปตามซีพียูแต่ละรุ่น เช่น  8088  มี Address Bus 20 เส้น ดังนั้นจะอ้างถึงหน่วยความจำได้ขนาด 220  หรือ  1 เมกะไบต์  ส่วน  80286  มี 24 เส้น  จะอ้างถึงหน่วยความจำได้ขนาด 224  หรือ  16 เมกะไบต์  เป็นต้น

      -      Control Bus  ใช้สำหรับส่งสัญญาณควบคุมพื้นฐาน เพื่อระบุว่าให้อุปกรณ์ที่จะได้รับข้อมูลใน Data Bus นั้นจัดการอย่างไรกับข้อมูลที่ได้รับ

3.4   ประเภทของระบบบัสแบ่งตามจำนวนสายนำสัญญาณและเทคโนโลยี

บัส 8 บิต  ข้อมูลจะถูกส่งไปยัง Adapter Card  และอุปกรณ์ต่าง ๆ ทางบัส ผ่านชุดสายนำสัญญาณชนิด 8 เส้น



-          สไอซา (ISA)  ย่อมาจาก  Industry Standard Architecture  คือเทคโนโลยีที่เป็นมาตรฐานเกี่ยวกับบัสทีใช้ในเครื่อง คอมพิวเตอร์ของ IBM  จะมีความเร็วตั้งแต่ 8-12 เมกะเฮิรตซ์  ใช้ได้กับชิปความเร็ว 12 MHz  หรือชิปรุ่น  386SX  ความเร็ว  16 MHz  แต่หลังจากชิป 386DX  ซึ่งระบบบัสข้อมูลเป็น 32 บิต มาตรฐานบัสชนิด ISA ก็เริ่มไม่เหมาะแล้วเพราะต้องส่งถึง 2 ครั้งเพื่อให้ได้ข้อมูล 32 บิต



-          บัสไมโครแชแนล (MCA)  ย่อมาจาก  Micro Channel Architecture  ซึ่งเป็นเทคโนโลยีเฉพาะของไอบีเอ็ม สิ่งที่เหนือกว่า ISA  คือความเร็วในการถ่ายโอนข้อมูลภายในคอมพิวเตอร์ และมีระดับการรบกวนของสัญญาณลดลง นอกจากนี้ยังสามารถกำหนดค่าได้ด้วยซอฟต์แวร์ ด้วยการรันโปรแกรมซึ่งสะดวกมาก ข้อดีของมันคือ ทำให้อุปกรณ์ต่าง ๆ หรือการ์ดเสริมต่าง ๆ สามารถพูดคุยกันได้โดยตรงโดยไม่ต้องผ่านซีพียู เช่น ขณะที่ซีพียูกำลังคำนวณอยู่ หน่วยความจำกับฮาร์ดดิสก์อาจติดต่อสื่อสารส่งข้อมูลกันเองได้โดยตรง
-          บัสอีซา (EISA)  ย่อมาจาก  Extended Industry Standard Architecture  ซึ่งเป็นเทคโนโลยีที่พัฒนามาเพื่อสู้กับ MCA ของ ไอบีเอ็ม ซึ่งประสิทธิภาพพยายามจะให้เทียบเท่ากับของไอบีเอ็ม แต่ข้อเสียของมันคือ มีความเร็วแต่ 20 MHz   ทำให้ CPU ที่มีความเร็วสูงกว่ามาก ต้องเข้าถึงหน่วยความจำด้วยความเร็วต่ำไปด้วย (เพราะการเข้าถึงหน่วยความจำของซีพียูต้องผ่านบัส) จึงทำให้บัสประเภทนี้ไม่ค่อยได้รับความนิยม
-          บัสวีซา (VESA Local Bus)  เรียกย่อ ๆ ว่า VL BUS  ซึ่งจะมีข้อดีเรื่องความเร็ว แต่ยังไม่มีมาตรฐานแน่นอน ผู้ผลิตบางราย ออกแบบสล็อตความเร็วสูงให้กับเมนบอร์ดเพื่อใช้สำหรับการ์ดหน่วยความจำเท่านั้น นั่นก็ถือเป็นโลคอลบัสหรือบัสเฉพาะที่ด้วย ทำให้เกิดปัญหาเรื่องความไม่เข้ากัน 



VL BUS มีขนาดของบัสข้อมูล 32 บิตการติดต่อระหว่างซีพียูจะติดต่อโดยตรงไม่ผ่านคอนโทรลเลอร์ ดังนั้นจึงมีความเร็วค่อนข้างสูงถึง  133-148  เมกะไบต์ต่อวินาที  แม้ว่าแต่แรกจะเน้นไปที่ต้องเป็นการ์ดแสดงผล แต่ก็สามารถใช้ได้กับการ์ดเพิ่มขยายอื่น ๆที่ตรงตามมาตรฐานได้ เช่น Lan Card  หรือ การ์ดควบคุม Disk Controller  

-          บัสพีซีไอ (PCI : Peripheral Component Interconnect)  ของ Intel  เป็นบัสชนิด 64 บิต สืบเนื่องจากข้อเสียของ VESA  ซึ่ง มีสล็อตสำหรับใส่การ์ดเพียง 3 สล็อต  ทำให้มีข้อจำกับในการใส่การ์ดเพิ่มขยาย  ยิ่งไปกว่านั้นไม่สามารถรองรับ CPU แบบ Pentium  ซึ่งต้องการบัสแบบ 64 บิต  Intel จึงได้ออก PCI  บัสออกมา ซึ่งสามารถรับส่งข้อมูลได้ทั้ง 32 และ 64 บิต  บัสพีซีไอ จะสนับสนุนการทำงานแบบ Plug and Play  หรือเสียบการ์ดเพิ่มขยายแล้วใช้งานได้เลยโดยไม่ต้องกำหนดค่าหรือติดตั้งไดรเวอร์อีก



-          บัส  PCMIA   สร้างขึ้นตามมาตรฐานของ  PCMCIA (Personal Computer Memory Card International Association) เพื่อ ใช้กับเครื่อง Notebook  จะรองรับบัสข้อมูลชนิด 16 บิต ความเร็วบัสไม่เกิน 33 MHz  ขณะที่แอดเดรสบัสสำหรับอ้างอิงตำแหน่งหน่วยความจำทั้งหมดเป็นชนิด 26 บิต ดังนั้นจึงอ้างอิงหน่วยความจำได้สูงสุดเพียง 64 เมกะไบต์  ข้อดีของการ์ดเหล่านี้คือ มีขนาดเล็กเท่ากับบัตรเครดิต ใช้กับการ์ดแบบต่าง ๆ เช่น การ์ดเครือข่าย การ์ดบางรุ่นจะติดตั้งระบบการทำงานให้โดยอัตโนมัติเมื่อมีการเสียบการ์ดเข้าหรือดึงออก



บทที่ 4 หน่วยความจำภายใน และภายนอก

Internal and  External Memory

    หน่วยความจำของคอมพิวเตอร์จะใช้ในการเก็บคำสั่งและข้อมูลขณะที่มีการประมวลผล  ภายในระบบคอมพิวเตอร์จะมีหน่วยความจำอยู่ 2 ประเภท คือภายใน (Internal) และ ภายนอก (External)  หน่วยความจำภายในนั้นเราไม่ได้หมายถึงหน่วยความจำหลัก (Main memory) เท่านั้น แต่ยังจะหมายถึงหน่วยความจำที่อยู่ภายในซีพียู (Local memory)   นอกจากนี้ภายใน CU  ซึ่งเป็นส่วนหนึ่งของ CPU นั้นก็ต้องการที่จะมีหน่วยความจำเป็นของตัวเองด้วย  ส่วนหน่วยความจำภายนอกนั้นเราจะหมายถึงอุปกรณ์เก็บข้อมูลอื่น ๆ ที่มักเรียกว่าเป็น peripheral storage devices เช่น ดิสก์ เทป ซึ่งติดต่อกับ CPU ด้วย I/O Controller
      คุณลักษณะอย่างหนึ่งของหน่วยความจำก็คือ ความจุ (Capacity) ซึ่งจะพูดกันในหน่วยของไบต์ (1 ไบต์ = 8 บิตหรือคำ (word)  ปกติแล้วคำจะมีความยาวขนาด 8, 16 หรือ 32 บิต  ข้อมูลทุกประเภทสุดท้ายจะถูกแปลงเป็นบิต 0 หรือ 1 ซึ่งอยู่ในรูปของเลขฐานสองเพื่อเก็บไว้ในหน่วยความจำ เมื่อต้องการใช้ก็จะมีการแปลงจากเลขฐานสองนั้นให้อยู่ในรูปแบบที่ต้องการ
      แนวคิดอีกอย่างที่เกี่ยวข้องกันคือ จำนวนหน่วยที่จะโอนย้ายได้ (Unit of Transfer) สำหรับหน่วยความจำภายในนั้น unit of transfer จะเท่ากับจำนวน data lines ที่เข้า-ออก หน่วยความจำ ซึ่งมันมักจะเท่ากับความยาวของคำ (แต่บางครั้งก็อาจจะไม่เท่าก็ได้)
               
วิธีการในการเข้าถึงหน่วยความจำ (Method of accessing unit of data) เราอาจแบ่งได้เป็น 4 แบบตามชนิดของหน่วยความจำ คือ
1.        Sequential Access   เช่น การเข้าถึงเทป
2.        Direct Access เช่น การเข้าถึงดิสก์
3.        Ramdom Access เช่นการเข้าถึงหน่วยความจำหลัก
4.        Associative เช่น การเข้าถึงหน่วยความจำแคช

ประสิทธิภาพของหน่วยความจำ จะพิจารณาถึงตัวแปร 3 ตัวนี้คือ
1. Access Time : หมายถึงเวลาที่ใช้ไปในการทำการอ่านหรือเขียนข้อมูล (เวลาที่จะนำข้อมูลไปไว้ยังตำแหน่งของหน่วยความ
จำที่ระบุไว้ หรือเวลาที่นำข้อมูลออกจากหน่วยความจำจากตำแหน่งที่ระบุไว้)
2.  Memory Cycle Time : เป็นแนวคิดที่พัฒนามาใช้กับ RAM ซึ่งประกอบด้วย เวลาในการเข้าถึงข้อมูล (access time) บวกกับ
เวลาก่อนที่การเข้าถึงครั้งต่อไปจะเริ่มขึ้น
3. Transfer Rate : เป็นอัตราส่วนที่ข้อมูลสามารถจะถูกเคลื่อนย้ายเข้าหรือออกจากหน่วยความจำได้ใน 1 หน่วยเวลา

4.1  หน่วยความจำ (Type of Memory)
            หน่วยความจำของเครื่องคอมพิวเตอร์ใช้ในการเก็บตัวคำสั่งในโปรแกรมและข้อมูลที่ใช้ ทั้งสองส่วนนี้จะถูกเก็บลงในหน่วยความจำขณะที่มีการประมวลผล ขนาดของหน่วยความจำจะเป็นไบต์ (Byte) เช่น 32 Mbytes แต่ละไบต์มีขนาด 8 บิต (Bit)  ซึ่งข้อมูลแต่ละบิตจะมีค่าได้ 2 อย่างคือ 0 กับ 1 ดังนั้นข้อมูลชนาด 1 ไบต์จึงมีค่าต่างกันได้ถึง 256 ค่า ข้อมูลทุกประเภทจะถูกเก็บโดยการแปลงเป็นบิตลงหน่วยความจำ เมื่อจะนำขึ้นมาใช้ก็แปลงกลับเป็นข้อมูลที่ต้องการ อาจแบ่งประเภทของหน่วยความจำได้ดังนี้
4.1.1  หน่วยความจำหลัก
หน่วยความจำชนิดรอม (ROM : Read Only Memory)
เป็นหน่วยความจำชนิดที่จะเก็บข้อมูลหรือโปรแกรมไว้อย่างถาวรไม่สามารถเปลี่ยนแปลงอะไรได้ไม่ว่าจะต้องการหรือไม่ สิ่งที่เก็บไว้จะประกอบด้วยข้อมูลที่จำเป็นสำหรับการเริ่มสตาร์ตเครื่องคอมพิวเตอร์ และใช้เก็บโปรแกรม  BIOS หรือโปรแกรมของคอมพิวเตอร์ที่ฝังอยู่ในฮาร์ดแวร์ของเครื่องที่ทำหน้าที่ตรวจสอบฮาร์ดแวร์และอุปกรณ์ต่าง ๆ ของคอมพิวเตอร์  
หน่วยความจำชนิดแรม (RAM : Random Access Memory)
 เป็นหน่วยความจำชนิดที่เก็บช้อมูลเอาไว้เพื่อให้โปรแกรมสามารถนำมาใฃ้งานได้ในทันทีที่ต้องการ ทั้งในส่วนของคำสั่งของโปรแกรมและข้อมูลที่ป้อนเข้าไป เป็นส่วนที่จะมีการเปลี่ยนแปลงอยู่ตลอดเวลาระหว่งางที่กำลังทำงานกับโปรแกรมอยู่ จะเป็นการเก็บไว้เพียงชั่วคราว และจะหายไปเมื่อปิดเครื่องหรือไฟฟ้าดับ นั่นคือแรมจะต้องมีไฟฟ้าคอยเลี้ยงตลอดเวลา โดยปกติทั่วไปหากบอกว่าคอมพิวเตอร์เครื่องนี้มี Memory 32 MB จะหมายถึงเครื่องคอมพิวเตอร์นั้นมี RAM 32 MB    แรมเป็นทรัพยากรที่มีค่ามากของคอมพิวเตอร์ และดูเหมือนว่าเครื่องมีแรมเท่าไรก็มักจะไม่พอต่อความต้องการ (ทั้งของเราและของโปรแกรม application)




4.1.2     หน่วยความจำสำรอง
ฟลอปปี้ดิสก์ (Floppy Disk)

เป็นแผ่นพลาสติกที่ทำจากวัสดุไมล่าบาง ๆ เคลือบด้วยสารออกไซด์ที่สามารถทำให้มีสภาพเป็นเหล็กได้ บรรจุอยู่ในซองที่ทำหน้าที่ป้องกัน มีการเก็บข้อมูลไว้บนผิวของแผ่นพลาสติก diskette มักถูกใช้ในการแจกจ่ายซอฟต์แวร์ การส่งไฟล์ หรือการสำรองข้อมูล
ผิวแผ่นดิสก์ที่ฉาบด้วยสารแม่เหล็กจะแบ่งเป็นแนววงกลมคล้ายกับร่องของแผ่นเสียง เรียกว่า Track  ซึ่งจะมีหลาย track  ซ้อน ๆ กันเป็นวงแหวน แต่ละวงจะถูกแบ่งเป็นพื้นที่ย่อย ๆ เรียกว่า Sector ซึ่งในการบันทึกข้อมูลจะทำการบันทึกลงบน sector เหล่านี้ จำนวน track และ sector นี้จะแตกต่างกันขึ้นอยู่กับวิธีการจัดเก็บข้อมูล หรือที่เรียกว่าการ Format นั่นเอง
ความจุของแผ่นดิสก์ = จำนวนด้าน * จำนวน track * จำนวน sector * จำนวนไบต์ใน sector เช่น แผ่นดิสก์ขนาด 3.5 นิ้ว ในแต่ละด้านจะแบ่งเป็น 40 แทรค  แทรคละ 36 เซกเตอร์ หนึ่งเซกเตอร์เก็บข้อมูลได้ 512 ไบต์ ดังนั้น จะมีความจะ  2 * 40 * 36 * 512  =  1,474,560  ไบต์ หรือประมาณ 1.44 เมกะไบต์

จุดประสงค์ของการ format
1.   เพื่อจัดเก็บพื้นที่สงวน (Reserve Area) ซึ่งประกอบด้วย
-          Boot Record หรือ Boot Sector ซึ่งจะอยู่ที่ sector 0 ของดิสก์
-    FAT (File Allocation Table) คือพื้นที่ที่ถัดจาก boot sector จะสงวนไว้ใช้สำหรับเก็บข้อมูลว่าไฟล์ถูกเก็บไว้เซกเตอร์ ไหนบ้าง และมีการเรียงลำดับกันอย่างไร
2.   พื้นที่ที่เหลือให้เก็บข้อมูล โดยแบ่งเป็น sector ที่เท่า ๆ กัน ในการเก็บข้อมูลจะต้องเก็บอย่างน้อย 1 เซกเตอร์
3.     กำหนดหมายเลข sector แบบสัมพันธ์กัน (Relative Sector Numbering)

ฮาร์ดดิสก์ (HardDisk)
เป็นอุปกรณ์เก็บข้อมูลที่มีลักษณะการทำงานคล้ายกับฟลอปปี้ดิสก์ แต่มีความจุของข้อมูลและความเร็วในการเข้าถึงข้อมูลสูงกว่า โครงสร้างภายในของฮาร์ดดิสก์จะประกอบด้วยแผ่นอลูมิเนียมเคลือบด้วยสารแม่เหล็กหลายแผ่นเรียงซ้อนกันเป็นแผ่นดิสก์เรียกรวมกันว่า Platters หมุนด้วยความเร็วประมาณ 3,600 รอบต่อวินาที ทำให้สามารถเก็บข้อมูลได้รวดเร็วและจำนวนมาก  หัวอ่าน-เขียนของ HD จะไม่ได้สัมผัสกับแผ่นเหมือนกับ FD โดยจะลอยอยู่เหนือแผ่นที่เคลือบด้วยสารแม่เหล็กห่างประมาณ 4 ไมครอน
Harddisk Controller เป็นอุปกรณ์ที่อยู่ภายในเมนบอร์ดของเครื่องคอมพิวเตอร์ ทำหน้าที่แปลงข้อมูลและควบคุมสัญญาณต่าง ๆ ให้เหมาะสมกับ drive ของ HD แต่ละชนิด  และเชื่อมต่อวงจรภายในของคอมพิวเตอร์ให้เข้ากับกลไกของ HD
ชนิดของ Controller
-          ESDI (Enhanced Small Device Interface) มีอัตราการรับส่งตั้งแต่ 10-24 เมกะบิตต่อวินาที ปัจจุบันไม่ค่อยใช้แล้ว
-          IDE (Intelligent Drive Electronics) บน HD แบบ IDE จะมีวงจรควบคุมอยู่ในตัวเอง และใช้ controller card เป็นตัวเชื่อม
ต่อกับระบบบัสของบอร์ด IDE มีข้อดีในแง่ที่ความเชื่อถือในการใช้งานสูง และราคาถูก อัตราการส่งจะเร็วกว่า ESDI ถึง 2 เท่า
-          SCSI (Small Computer Systems Interface)  ความเร็วในการรับส่งข้อมูลอยู่ระหว่าง 4-10 เมกะบิตต่อวินาที  แต่ SCSI
สามารถต่อกับอุปกรณ์ได้มากแบบ และง่าย นอกจากนี้ SCSI ยังมีวงจรควบคุมอยู่ในตัวเองเช่นเดียวกับ IDE
ความจุของ HD ในปัจจุบันนิยมวัดเป็น GB (1,000,000,000 ตัวอักษร) ยิ่งความจุมากก็จะสามารถเก็บข้อมูลได้มาก และราคาก็
ยิ่งสูงขึ้นตามไปด้วย  ซึ่งสามารถคำนวณได้จากสูตร
      ความจุ = จำนวนไซลินเดอร์ * จำนวนด้าน * จำนวนเซกเตอร์ * จำนวนไบต์ในเซกเตอร์

ซีดีรอม (CD-ROM : Compact Disc Read Only Memory)
เป็นอุปกรณ์ที่ใช้สำหรับเก็บข้อมูล โดยปกติแผ่นซีดีรอมจะถูกอ่านได้อย่างเดียวเท่านั้น ซึ่งมันจะถูกเขียนได้แค่ครั้งเดียวด้วยแสงเลเซอร์ความเข้มสูงทำให้ผิวของมันเปลี่ยนสภาพถาวรตามข้อมูลทีเขียนครั้งแรกนั้น หลังจากนั้นจะไม่สามารถเขียนข้อมูลทับหรือลบข้อมูลทิ้งไปได้ การอ่านข้อมูลจากแผ่นซีดีจะใช้แสงจาก Photo Diode วิ่งผ่านชั้นพลาสติกไปตามส่วนทีเป็นหลุมและเป็นเนิน เมื่อแสงกระทบกับหลุมแสงก็จะกระจายไม่มีการสะท้อนกลับมา และถ้าเจอส่วนที่เป็นเนินแสงจะสะท้อนกลับมา โดยจะใช้ปริซึมเพื่อแยกแสงที่สะท้อนออกมา แล้วส่งไปยังตัวหัวอ่านข้อมูล หรือที่เรียกว่า Photo Detector เพื่อทำการตรวจจับแสง
รูปแบบการเก็บข้อมูลของซีดีรอมจะเก็บในลักษณะของ track และ sector เช่นเดียวกับดิสก์ แต่ sector จะมีขนาดเท่ากันทุก sector  ดังนั้นจึงต้องใช้มอเตอร์ที่หมุนได้หลายความเร็วเพื่อให้อัตราในการอ่านข้อมูลคงที่สม่ำเสมอทุก sector

ซิปไดรว์ (Zip Drive)
เป็นอุปกรณ์ที่สามารถเก็บข้อมูลขนาด 230 MB  ลงบนแผ่นขนาด 3.5 นิ้ว  Zip Disk   ซึ่งจะมีทั้งแบบที่เป็น Internal หรือ External

เทป (Tape)
เป็นอุปกรณ์เก็บข้อมูลที่มีลักษณะการบันทึกแบบ Sequential คือข้อมูลจะเก็บเรียงกันไป ทำให้การเข้าถึงข้อมูลทำได้ช้า เพราะต้องเริ่มอ่านตั้งแต่ต้นเทปจนกว่าจะเจอข้อมูลที่ต้องการ


4.2 ลำดับชั้นของหน่วยความจำ (Memory Hierarchies)
    ตามปกติแล้วระบบจะให้หน่วยความจำที่มีความเร็วสูงไว้ข้างบน ใกล้ ๆ กับ CPU ซึ่งขนาดของหน่วยความจำนี้ไม่จำเป็นต้องใหญ่มากนัก แต่จะมีความเร็วในการ access หรือการเข้าถึงสูง เพราะใช้อัตราความเร็วในการ access หรือใช้ clock rate เดียวกับ CPU  เมื่อมีการเรียกใช้คำสั่งหรือที่เรียกว่า working set ชุดหนึ่ง เราจะเอากลุ่มคำสั่งเหล่านี้ไปไว้ในหน่วยความจำที่มีความเร็วสูงที่อยู่ติดกับ CPU รวมทั้งเอาหน่วยความจำตำแหน่งที่ใกล้ ๆ กับตำแหน่งของ working set ในหน่วยความจำไปเก็บไว้ในหน่วยความจำที่มีความเร็วสูงนี้ด้วย โดยอาศัยหลักการของ Locality of Referecne คือโปรแกรมต่าง ๆ ไม่ว่าจะเขียนด้วยภาษาอะไรก็ตาม จะมีคุณสมบัติที่ว่าเมื่อมีการเรียกใช้คำสั่งใดในโปรแกรมแล้วการเรียกใช้ซ้ำอีกครั้งหนึ่งนั้นจะเกิดขึ้นอีกเสมอ  ดังนั้นเมื่อมีการเรียกใช้คำสั่งนั้นซ้ำอีกครั้งก็จะสามารถหาคำสั่งนี้ได้จากหน่วยความจำที่มีความเร็วสูงนี้เอง โดยไม่ต้องไปหาที่หน่วยความจำหลักหรือ RAM ซึ่งมีการเข้าถึงที่ช้ากว่า หน่วยความจำที่มีขนาดเล็ก อยู่ใกล้กับ CPU และมีความเร็วในการเข้าถึงสูงนี้ เรารู้จักกันในชื่อของ Cache ซึ่ง Cache ที่อยู่ติดกับตัว CPU เราจะเรียกว่าเป็น Cache Level1 หรือ L1  ส่วน Cache ที่อยู่นอก CPU จะเรียกว่า Cache Level2 หรือ L2