RAM ย่อมาจาก
(Random Access Memory) เป็นหน่วยความจำหลักที่จำเป็น
หน่วยความจำ ชนิดนี้จะสามารถเก็บข้อมูลได้
เฉพาะเวลาที่มีกระแสไฟฟ้าหล่อเลี้ยงเท่านั้นเมื่อใดก็ตามที่ไม่มีกระแสไฟฟ้า
มาเลี้ยง ข็อมูลที่อยู่ภายในหน่วยความจำชนิดจะหายไปทันที หน่วยควมจำแรม
ทำหน้าที่เก็บชุดคำสั่งและข้อมูลที่ระบบคอมพิวเตอร์กำลังทำงานอยู่ด้วย
ไม่ว่าจะเป็นการนำเข้าข้อมูล (Input) หรือ การนำออกข้อมูล (Output)
โดยที่เนื้อที่ของหน่วยความจำหลักแบบแรมนี้ถูกแบ่งออกเป็น 4 ส่วน คือ
1. Input Storage Area เป็นส่วนที่เก็บข้อมูลนำเข้าที่ได้รับมาจากหน่วยรับข้อมูลเข้าโดย ข้อมูลนี้จะถูกนำไปใช้ในการประมวลผลต่อไป
2. Working Storage Area เป็นส่วนที่เก็บข้อมูลที่อยู่ในระหว่างการประมวลผล
3. Output Storage Area เป็นส่วนที่เก็บผลลัพธ์ที่ได้จากการประมวลผล ตามความต้องการของผู้ใช้ เพื่อรอที่จะถูกส่งไปแสดงออก ยังหน่วยแสดงผลอื่นที่ผู้ใช้ต้องการ
4. Program Storage Area เป็นส่วนที่ใช้เก็บชุดคำสั่ง หรือโปรแกรมที่ผู้ใช้ต้องการจะส่งเข้ามา เพื่อใช้คอมพิวเตอร์ปฏิบัติตามคำสั่ง ชุดดังกล่าว หน่วยควบคุมจะทำหน้าที่ดึงคำสั่งจากส่วน นี้ไปที่ละคำสั่งเพื่อทำการแปลความหมาย ว่าคำสั่งนั้นสังให้ทำอะไร จากนั้นหน่วยควบคุม จะไปควบคุมฮาร์ดแวร์ที่ต้องการทำงานดังกล่าวให้ทำงานตามคำสั่งนั้นๆ
1. Input Storage Area เป็นส่วนที่เก็บข้อมูลนำเข้าที่ได้รับมาจากหน่วยรับข้อมูลเข้าโดย ข้อมูลนี้จะถูกนำไปใช้ในการประมวลผลต่อไป
2. Working Storage Area เป็นส่วนที่เก็บข้อมูลที่อยู่ในระหว่างการประมวลผล
3. Output Storage Area เป็นส่วนที่เก็บผลลัพธ์ที่ได้จากการประมวลผล ตามความต้องการของผู้ใช้ เพื่อรอที่จะถูกส่งไปแสดงออก ยังหน่วยแสดงผลอื่นที่ผู้ใช้ต้องการ
4. Program Storage Area เป็นส่วนที่ใช้เก็บชุดคำสั่ง หรือโปรแกรมที่ผู้ใช้ต้องการจะส่งเข้ามา เพื่อใช้คอมพิวเตอร์ปฏิบัติตามคำสั่ง ชุดดังกล่าว หน่วยควบคุมจะทำหน้าที่ดึงคำสั่งจากส่วน นี้ไปที่ละคำสั่งเพื่อทำการแปลความหมาย ว่าคำสั่งนั้นสังให้ทำอะไร จากนั้นหน่วยควบคุม จะไปควบคุมฮาร์ดแวร์ที่ต้องการทำงานดังกล่าวให้ทำงานตามคำสั่งนั้นๆ
ความเร็วของ RAM คิดกันอย่างไร
ที่ตัว Memorychip จะมี เลขรหัส เช่น HM411000-70 ตัวเลขหลัง (-) คือ ตัวเลขที่บอก ความเร็วของ RAM ตัวเลขนี้ เรียกว่า Accesstime คือ เวลาที่เสียไป ในการที่จะเข้าถึงข้อมูล หรือ เวลาที่แสดงว่า ข้อมูลจะถูก ส่งออกไปทาง Data busได้เร็วแค่ไหน ยิ่ง Access time น้อยๆ แสดงว่า RAM ตัวนั้น เร็วมาก
ที่ตัว Memorychip จะมี เลขรหัส เช่น HM411000-70 ตัวเลขหลัง (-) คือ ตัวเลขที่บอก ความเร็วของ RAM ตัวเลขนี้ เรียกว่า Accesstime คือ เวลาที่เสียไป ในการที่จะเข้าถึงข้อมูล หรือ เวลาที่แสดงว่า ข้อมูลจะถูก ส่งออกไปทาง Data busได้เร็วแค่ไหน ยิ่ง Access time น้อยๆ แสดงว่า RAM ตัวนั้น เร็วมาก
ตารางค่า Access time บน Chip
|
Access time(ns)
|
ตัวเลขที่พบบน Memory chip
|
|
250
|
25
|
|
200
|
20
|
|
150
|
15
|
|
120
|
12
|
|
100
|
10
|
|
85
|
85
|
|
80
|
8,80
|
|
70
|
7,70
|
|
65
|
65
|
|
60
|
6,60
|
|
53
|
53
|
ความเร็วของ RAM เรียกว่า Cycle time ซึ่งมีหน่วยเป็น ns โดย Cycle time เท่ากับ Read/Write cycle time (เวลาที่ในการส่งสัญญาณติดต่อ
ว่าจะอ่าน/เขียน RAM) รวมกับ Access time และ Refresh time
โดยทั่วไป RAM จะต้องทำการตอบสนอง CPU ได้ในเวลา 2 clock cycle หรือ 2 คาบ หาก RAM ตอบสนองไม่ทัน RAM จะส่งสัญญาณ /WAIT บอก CPU ให้
คอย คือ การที่ CPU เพิ่ม clock cycle ซึ่งช่วงเวลานี้เรียกว่า
WAIT STATE
วิธีที่ใช้ในการแก้ไข WAIT STATE
1. เทคนิค INTERLEAVE
เทคนิคนี้เป็นการลดปัญหาเรื่อง Refresh time เพราะในการทำงานของ RAM จะเห็นว่าใน การติดต่อกับ Memory 1 address จะใช้เวลา 1 cycle time ในการที่ CPU ติดต่อ กับ Memory ในแต่ละครั้ง จะติดต่อเป็น block คือ หลาย Address เรียงต่อกัน จากความจริง ข้อนี้ เทคนิคการ Interleave จึงเกิดขึ้น โดยหลักการที่จะทำให้ Cycle time เหลื่อมกันเกิดจน Cycle time ใหม่ที่แคบลง
การสลับ Bank ของ Memory โดย Bank บล็อกหนึ่งจะมี Memory address เป็นเลขคี่ อีก Bank จะเป็นเลขคู่ เวลา CPU ติดต่อสลับไปสลับมาใน 2 Bank เพราะฉะนั้นต้องใส่ Memory ให้เต็ม Bank เป็นจำนวนคู่ เช่น 2 Bank หรือ 4 Bank ถ้า Memory ขนาดเท่ากัน คนที่ใส่ Memory ทั้งหมดไว้ใน Bank เดียว จะทำงานได้ช้ากว่า คนที่แบ่ง Memory ใส่เป็น 2 Bank แต่ Bank ก็จะ เหลือน้อยด้วย
เทคนิคนี้เป็นการลดปัญหาเรื่อง Refresh time เพราะในการทำงานของ RAM จะเห็นว่าใน การติดต่อกับ Memory 1 address จะใช้เวลา 1 cycle time ในการที่ CPU ติดต่อ กับ Memory ในแต่ละครั้ง จะติดต่อเป็น block คือ หลาย Address เรียงต่อกัน จากความจริง ข้อนี้ เทคนิคการ Interleave จึงเกิดขึ้น โดยหลักการที่จะทำให้ Cycle time เหลื่อมกันเกิดจน Cycle time ใหม่ที่แคบลง
การสลับ Bank ของ Memory โดย Bank บล็อกหนึ่งจะมี Memory address เป็นเลขคี่ อีก Bank จะเป็นเลขคู่ เวลา CPU ติดต่อสลับไปสลับมาใน 2 Bank เพราะฉะนั้นต้องใส่ Memory ให้เต็ม Bank เป็นจำนวนคู่ เช่น 2 Bank หรือ 4 Bank ถ้า Memory ขนาดเท่ากัน คนที่ใส่ Memory ทั้งหมดไว้ใน Bank เดียว จะทำงานได้ช้ากว่า คนที่แบ่ง Memory ใส่เป็น 2 Bank แต่ Bank ก็จะ เหลือน้อยด้วย
2. วิธีการ
Page Mode
วิธีการนี้จะต้องใช้ RAM พิเศษ คือ Paged RAM โดย Memory จะถูกมองว่า แบ่ง เป็นกลุ่ม หรือ Page หลาย Page ในการติดต่อกับ Memory ที่ Address อยู่ใน Page เดียวกัน ต่อๆ ไป โดยไม่ต้องมี Wait State แต่ถ้ามีการติดต่อกับ Page อื่น จะมี Wait State เหมือนเดิม
วิธีการนี้จะต้องใช้ RAM พิเศษ คือ Paged RAM โดย Memory จะถูกมองว่า แบ่ง เป็นกลุ่ม หรือ Page หลาย Page ในการติดต่อกับ Memory ที่ Address อยู่ใน Page เดียวกัน ต่อๆ ไป โดยไม่ต้องมี Wait State แต่ถ้ามีการติดต่อกับ Page อื่น จะมี Wait State เหมือนเดิม
3. Cache Memory Memory
ส่วนนี้จะถูกรวมกับ CPU ซึ่งก็คือ Internal Cache แต่ถ้าเอามาติดบนเมนบอร์ด จะเรียกว่า External Cache ก็คือ RAM นั่นเอง แต่ความเร็วจะสูงมาก ทำให้ไม่มีภาวะ Wait State วิธีการก็คือ พยายามให้ CPU ติดต่อกับ Cache ซึ่งเป็น SRAM ความเร็วสูงก่อน เพราะ ไม่มีภาวะ WaitState โดยจะมีวงจร Cache controller ซึ่งเป็น ตัวจัดการ Cache โดยมันจะตัด บล็อกข้อมูลจาก main memory ประมาณบล็อกละ 2-4 KB มาใส่ไว้ใน Cache พอ CPU ติดต่อ Memory ก็จะมาดูใน Cache ก่อนว่ามีข้อมูลที่ต้องการหรือไม่ ถ้าไม่มีก็จะไปเอาจาก Main memory ความสำคัญของ Cache คือ การตัดบล็อกมาให้ถูกตามความต้องการของ CPU โดย Cache controller จะใช้วิธีการ Random แต่ Random อย่างมีหลักการ คือ CPU มักต้องการ ข้อมูลที่ต่อเนื่องกัน เพราะฉะนั้น Cache จะตัดข้อมูลบล็อกถัดไปมาเก็บไว้ การ Random แบบนี้ให้ความแม่นยำถึง 80% ทีเดียว คือ ไม่มีภาวะ Wait State เป็นเวลา 80% ของเวลาที่ใช้ ทำงานทั้งหมด
ส่วนนี้จะถูกรวมกับ CPU ซึ่งก็คือ Internal Cache แต่ถ้าเอามาติดบนเมนบอร์ด จะเรียกว่า External Cache ก็คือ RAM นั่นเอง แต่ความเร็วจะสูงมาก ทำให้ไม่มีภาวะ Wait State วิธีการก็คือ พยายามให้ CPU ติดต่อกับ Cache ซึ่งเป็น SRAM ความเร็วสูงก่อน เพราะ ไม่มีภาวะ WaitState โดยจะมีวงจร Cache controller ซึ่งเป็น ตัวจัดการ Cache โดยมันจะตัด บล็อกข้อมูลจาก main memory ประมาณบล็อกละ 2-4 KB มาใส่ไว้ใน Cache พอ CPU ติดต่อ Memory ก็จะมาดูใน Cache ก่อนว่ามีข้อมูลที่ต้องการหรือไม่ ถ้าไม่มีก็จะไปเอาจาก Main memory ความสำคัญของ Cache คือ การตัดบล็อกมาให้ถูกตามความต้องการของ CPU โดย Cache controller จะใช้วิธีการ Random แต่ Random อย่างมีหลักการ คือ CPU มักต้องการ ข้อมูลที่ต่อเนื่องกัน เพราะฉะนั้น Cache จะตัดข้อมูลบล็อกถัดไปมาเก็บไว้ การ Random แบบนี้ให้ความแม่นยำถึง 80% ทีเดียว คือ ไม่มีภาวะ Wait State เป็นเวลา 80% ของเวลาที่ใช้ ทำงานทั้งหมด
การ Check Parity
สำหรับวิธี Odd Parity จะทำการนับจำนวนบิตที่เป็น 1
ใน 8 บิตว่ามีจำนวนเป็นคู่ หรือเป็นคี่ โดยมี IC
74LS280 ทำหน้าที่เป็นตัวสร้าง Parity และ
เป็นตัวตรวจสอบ ถ้า 74LS280 นับจำนวน 1 ใน 8 บิตได้ เป็นจำนวนคู่ที่ Parity bit จะถูกเซ็ตให้เป็น 1 เพื่อให้จำนวนของ 1 ใน 9 บิต (รวม Parity bit ด้วย)
เป็นจำนวนคี่ แต่ถ้านับจำนวนของ 1 ใน 8 บิต ได้เป็นเลขคี่ Parity bit จะถูกเซ็ตให้เป็น 0
เพื่อให้จำนวนของ 1ใน 9 บิต
รวมเป็นเลขคี่ ถ้าวิธ ีEven Parity ก็จะทำใน ทางกลับกัน
คือพยายามเซ็ต Parity ให้จำนวนของ 1 ใน
9 บิตเป็นจำนวนคู่
Parity
bit จะถูกสร้างตอน เขียนข้อมูลลงใน RAM และจะถูกตรวจสอบ
เมื่อมีการ อ่านข้อมูลจาก RAM เช่น ถ้าข้อมูลเป็น 11001010
ด้วยวิธี Odd Parity จะ เซ็ต Parity
bit เป็น 1 แต่ถ้าตอนอ่านข้อมูลเกิดการเปลี่ยนแปลงเป็น
10001010 โดย Odd Parity ยังคงเป็น 1
ก็จะแสดง ว่ามีการผิดพลาดเกิดขึ้น IC 74LS280 จะทำการสร้างสัญญาณไปบอกให้
CPU เกิดการ Halt และแสดงข้อความรายงานทางหน้าจอในแบบต่างๆ
เช่น PARITY ERROR SYSTEM HALT
ข้อเสียของการใช้ Parity bit คือ เสียเวลา
และไม่ได้ประโยชน์เท่าไรนัก เพราะไม่ สามารถบอกได้ว่าผิดที่ตำแหน่งไหน
และแก้ไขข้อผิดพลาดไม่ได้ บอกได้แค่ว่ามีความผิดพลาด เกิดขึ้นเท่านั้น
ยิ่งกว่านั้น ถ้าสมมติ ข้อมูลเกิดผิดพลาดทีเดียว 2 บิต เช่น 10001001
เปลี่ยนเป็น 10101011 เราก็ไม่สามารถเช็คข้อผิดพลาดโดยใช้วิธี
Parity ได้
เมื่อรู้การทำงานของ RAM แล้ว
เราก็จะมาดู ประเภทของ RAM ที่มีใช้กันอยู่
1. DIP (Dual In-line Package) เป็นแบบพื้นฐานที่ใช้กัน เพราะ DIP คือ RAM ที่อยู่ในรูปแบบของ IC (Integrate Circuit ) หรือ Memory chip การใช้งาน หรือติดตั้ง RAM ชนิดนี้ทำได้โดยการติดลงบน ซ็อคเก็ตของ DIP เท่าที่เมนบอร์ดเตรียมไว้ให้ นั่นหมายความว่า ยิ่งความต้องการติด DIP มากๆ เมนบอร์ดก็ต้องมีซ็อคเก็ตไว้ให้มากๆ ผลก็คือ ใช้พื้นที่เปลือง และทำให้เมนบอร์ดใหญ่มาก ในการติด DIP ยังต้องระมัดระวังด้วย เพราะ Pin บอบบาง งอง่าย หักง่าย ทั้งยัง เสียเวลาในการติด
2. SIPP (Single In-line Pin Package) จะลดความยุ่งยากของการติดตั้ง RAM แบบ DIP ลง โดยติดลงบนแผ่น PCB (Printed Circuit Board) ซะก่อน SIPP เป็นแผ่น PCB ที่มี Pin ซึ่งเหมือนขาของ IC แต่ Pin ของ SIPP จะมีเพียงแถวเดียวเรียงไปตามแนวยาวของแผ่น PCB การติดตั้ง SIPP ที่มีลักษณะเป็นรูกลมเรียงหนึ่งเป็นแถวยาวมีจำนวนรูเท่ากับ Pin ของ SIPP พอดี ประหยัดเนื้อที่บนเมนบอร์ด และติดตั้งง่ายกว่า DIP มาก
3. SIMM (Single In-line Memory Module) รูปร่างหน้าตา จะคล้ายกับ SIPP แต่ต่าง ส่วนที่จะต่อกับ ซ็อคเก็ตบนเมนบอร์ด จาก Pin เป็นแบบ Edge Connector คือเป็น ลายวงจรเรียง กันเป็นซี่ตามขอบของ PCB ในแนวยาว ลักษณะเหมือนกับ ที่เห็นตามการ์ดต่างๆ แต่ในการติดตั้ง SIMM จะไม่ใช้การเสียบลงไปตรงๆ เหมือนการ์ดทั่วไป แต่จะเสียบลงแบบเอียงๆแล้วดันSIMM ไปด้านข้างเพื่อให้ กลไกบนซ็อคเก็ตทำการล็อก SIMM เอาไว้ การใช้ Edge connector ในSIMM ก็เพื่อตัดปัญหาเรื่องหน้าสัมผัสของ Pin กับซ็อคเก็ต
SIMM ที่ถูกผลิตออกมาจะแบ่งได้เป็นชนิดต่างๆ ตามความกว้างของข้อมูลของ SIMM แต่ละโมดูล คือ ชนิด 8 บิต, 16 บิต, 32 บิต การจัดวางลำดับของ Edge connector จะมีมาตรฐาน กลางที่ใช้กันอยู่
4. DIMM (Dual In-line Memory Module) เป็น RAM ชนิดใหม่ และถูกกำหนด ให้เป็นมาตรฐานกลางโดย JEDEC (Joint Electron Device Engineering Council) ลักษณะโดย ทั่วไป จะคล้าย SIMM แต่จะมี 168 Pin (ข้างละ 84 pin )
1. DIP (Dual In-line Package) เป็นแบบพื้นฐานที่ใช้กัน เพราะ DIP คือ RAM ที่อยู่ในรูปแบบของ IC (Integrate Circuit ) หรือ Memory chip การใช้งาน หรือติดตั้ง RAM ชนิดนี้ทำได้โดยการติดลงบน ซ็อคเก็ตของ DIP เท่าที่เมนบอร์ดเตรียมไว้ให้ นั่นหมายความว่า ยิ่งความต้องการติด DIP มากๆ เมนบอร์ดก็ต้องมีซ็อคเก็ตไว้ให้มากๆ ผลก็คือ ใช้พื้นที่เปลือง และทำให้เมนบอร์ดใหญ่มาก ในการติด DIP ยังต้องระมัดระวังด้วย เพราะ Pin บอบบาง งอง่าย หักง่าย ทั้งยัง เสียเวลาในการติด
2. SIPP (Single In-line Pin Package) จะลดความยุ่งยากของการติดตั้ง RAM แบบ DIP ลง โดยติดลงบนแผ่น PCB (Printed Circuit Board) ซะก่อน SIPP เป็นแผ่น PCB ที่มี Pin ซึ่งเหมือนขาของ IC แต่ Pin ของ SIPP จะมีเพียงแถวเดียวเรียงไปตามแนวยาวของแผ่น PCB การติดตั้ง SIPP ที่มีลักษณะเป็นรูกลมเรียงหนึ่งเป็นแถวยาวมีจำนวนรูเท่ากับ Pin ของ SIPP พอดี ประหยัดเนื้อที่บนเมนบอร์ด และติดตั้งง่ายกว่า DIP มาก
3. SIMM (Single In-line Memory Module) รูปร่างหน้าตา จะคล้ายกับ SIPP แต่ต่าง ส่วนที่จะต่อกับ ซ็อคเก็ตบนเมนบอร์ด จาก Pin เป็นแบบ Edge Connector คือเป็น ลายวงจรเรียง กันเป็นซี่ตามขอบของ PCB ในแนวยาว ลักษณะเหมือนกับ ที่เห็นตามการ์ดต่างๆ แต่ในการติดตั้ง SIMM จะไม่ใช้การเสียบลงไปตรงๆ เหมือนการ์ดทั่วไป แต่จะเสียบลงแบบเอียงๆแล้วดันSIMM ไปด้านข้างเพื่อให้ กลไกบนซ็อคเก็ตทำการล็อก SIMM เอาไว้ การใช้ Edge connector ในSIMM ก็เพื่อตัดปัญหาเรื่องหน้าสัมผัสของ Pin กับซ็อคเก็ต
SIMM ที่ถูกผลิตออกมาจะแบ่งได้เป็นชนิดต่างๆ ตามความกว้างของข้อมูลของ SIMM แต่ละโมดูล คือ ชนิด 8 บิต, 16 บิต, 32 บิต การจัดวางลำดับของ Edge connector จะมีมาตรฐาน กลางที่ใช้กันอยู่
4. DIMM (Dual In-line Memory Module) เป็น RAM ชนิดใหม่ และถูกกำหนด ให้เป็นมาตรฐานกลางโดย JEDEC (Joint Electron Device Engineering Council) ลักษณะโดย ทั่วไป จะคล้าย SIMM แต่จะมี 168 Pin (ข้างละ 84 pin )
Module ของ
RAM
RAM ที่เรานำมาใช้งานนั้นจะเป็น chip เป็น ic ตัวเล็กๆ ซึ่งส่วนที่เรานำมาใช้เป็นน่วยความจำหลัก จะถูกบัดกรีติดอยู่บนแผงวงจร หรือ Printed Circuit Board เป็น Module ซึ่งมีหลัก ๆ อยู่ 2 Module คือ SIMM กับ DIMM
RAM ที่เรานำมาใช้งานนั้นจะเป็น chip เป็น ic ตัวเล็กๆ ซึ่งส่วนที่เรานำมาใช้เป็นน่วยความจำหลัก จะถูกบัดกรีติดอยู่บนแผงวงจร หรือ Printed Circuit Board เป็น Module ซึ่งมีหลัก ๆ อยู่ 2 Module คือ SIMM กับ DIMM
SIMM หรือ Single
In-line Memory Module
โดยที่ Module ชนิดนี้ จะรองรับ datapath 32 bit โดยทั้งสองด้านของ circuit board จะให้สัญญาณ เดียวกัน
โดยที่ Module ชนิดนี้ จะรองรับ datapath 32 bit โดยทั้งสองด้านของ circuit board จะให้สัญญาณ เดียวกัน
