แรม
RAM (Random Access Memory) 

คือหน่วยความจำที่มีการเข้าถึงได้ โดยไม่ต้องใส่ลำดับ (Sequential Access) ต้องการข้อมูล ที่ตำแหน่งใดก็ได้ โดยส่ง Address (ตัวเลขระบุตำแหน่ง) ให้กับ RAM Memory Chip ที่ใช้กันในเครื่องพีซีแบ่งได้เป็น 2 ประเภทใหญ่ๆ ได้แก่
                1.SRAM(Static RAM)
                2.DRAM(Dynamic RAM)
คุณสมบัติที่แตกต่างกัน ระหว่าง SRAM กับ DRAM คือ SRAM มีราคาสูงกว่า เนื่องจาก SRAM มี ความเร็วสูงกว่า DRAM
การใช้งาน RAM นั้น ต้องมีไฟเลี้ยงตลอดเวลา และนอกจากไฟเลี้ยงแล้ว DRAM ยังต้องการ การ Refresh ข้อมูลเป็นระยะๆ เสมือนการเตือนความทรงจำ ซึ่ง ผิดกับ SRAM ที่ไม่ต้องมีการ Refresh เนื่องจาก DRAM ซึ่งทำมาจาก MOSใช้หลักการ ของตัวเก็บประจุ มาเก็บข้อมูล เมื่อเวลาผ่านไป ประจุจะค่อยๆรั่วออก ทำให้ต้องมีการ Refresh ประจุตลอดเวลาการใช้งาน ส่วน SRAM ซึ่งทำมาจาก Flip-Flop นั้น ไม่จำเป็นต้องมีการ Refresh แต่ SRAM จะกินไฟมากกว่า DRAM อันเนื่องจากการใช้ Flip-Flop นั่นเอง

ความเร็วของ 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 ก็จะ เหลือน้อยด้วย

    2. วิธีการ Page Mode
                วิธีการนี้จะต้องใช้ 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% ของเวลาที่ใช้ ทำงานทั้งหมด

การ Check Parity
        การเช็ค Parity เป็นการ เพิ่มบิตพิเศษเข้าไปอีก 1 บิต ให้กับทุกๆ 8 บิต ของข้อมูล จนกลายเป็น 9 บิต บิตที่เพิ่มขึ้นไม่ใช่ข้อมูล แต่ใส่เพื่อตรวจสอบว่า ข้อมูลมีความผิดพลาดหรือไม่ โดยใช้หลักการนับขำนวนบิตข้อมูลที่มีค่าเป็น 1 ในทุกๆ 8 บิต การเข็ค Parity นี้แบ่งได้ 2 วิธี คือ Odd Parity (Parity คี่) และ Even Parity (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 )


รวบรวมจาก บทเรียน Online วิชา 204323 ไมโครโปรเซสเซอร์และการออกแบบไมโครคอมพิวเตอร์ รศ.ยืน ภู่วรวรรณ



แหล่งอ้างอิง : http://web.ku.ac.th/schoolnet/snet1/hardware/ram.htm

โดย : นาย ศราวุฒิ เสือสา, นารินุกูล, วันที่ 14 กุมภาพันธ์ 2546