ตัวสะสม
ตัวสะสม (อังกฤษ: accumulator) ในหน่วยประมวลผลกลางของคอมพิวเตอร์ คือเรจิสเตอร์ชนิดหนึ่งที่เก็บค่าผลลัพธ์จากการคำนวณเลขคณิตและตรรกะในระหว่างการทำงาน
ถ้าคอมพิวเตอร์ไม่มีเรจิสเตอร์อย่างเช่นตัวสะสม ผลลัพธ์ของการคำนวณแต่ละชนิด (บวก คูณ เลื่อน ฯลฯ) จำเป็นต้องเขียนไปที่หน่วยความจำหลัก ซึ่งบางทีก็เพียงแค่อ่านค่ากลับมาอีกครั้งเพื่อใช้ในการดำเนินการถัดไป การเข้าถึงหน่วยความจำหลักนั้นช้ากว่าการเข้าถึงเรจิสเตอร์อย่างเช่นตัวสะสม เพราะว่าเทคโนโลยีที่ใช้ในหน่วยความจำหลักทำงานได้ช้ากว่า (แต่ถูกกว่า) ที่ใช้ในเรจิสเตอร์ ระบบคอมพิวเตอร์อิเล็กทรอนิกส์ยุคแรก ๆ จึงแบ่งเป็นสองกลุ่มคือ กลุ่มที่มีตัวสะสมกับกลุ่มที่ไม่มีตัวสะสม
ระบบคอมพิวเตอร์สมัยใหม่มักจะมีเรจิสเตอร์สำหรับจุดประสงค์ทั่วไปหลายตัวที่ทำหน้าที่เป็นตัวสะสม และศัพท์คำนี้ก็ไม่เป็นรู้จักกันอย่างเมื่อก่อน อย่างไรก็ตาม หน่วยประมวลผลสำหรับจุดประสงค์พิเศษจำนวนหนึ่งยังคงใช้ตัวสะสมเดี่ยวในการทำงาน เพื่อทำให้การออกแบบง่ายขึ้น
แนวคิดพื้นฐาน
[แก้]การดำเนินการทางคณิตศาสตร์หลายอย่างมักจะต้องทำเป็นขั้นเป็นตอน โดยใช้ผลลัพธ์จากการดำเนินการหนึ่งป้อนเข้าการดำเนินการถัดไป ยกตัวอย่าง การคำนวณค่าตอบแทนรายสัปดาห์ของพนักงานด้วยมืออาจทำได้ดังนี้
- เรียกดูจำนวนชั่วโมงที่ทำงานจากบัตรลงเวลาของพนักงาน
- เรียกดูอัตราการค่าตอบแทนสำหรับพนักงานนั้นจากตาราง
- คูณจำนวนชั่วโมงกับอัตราค่าตอบแทน ให้ได้ค่าตอบแทนรายสัปดาห์เบื้องต้น
- คูณผลลัพธ์ดังกล่าวกับอัตราร้อยละตายตัว ให้ได้ภาษีเงินได้
- หักจำนวนนั้นออกจากค่าตอบแทนรายสัปดาห์เบื้องต้น ให้ได้ค่าตอบแทนรายสัปดาห์หลังหักภาษีเงินได้
- คูณผลลัพธ์ดังกล่าวกับอัตราร้อยละตายตัวอีกค่าหนึ่ง ให้ได้แผนการเกษียณอายุ
- หักจำนวนนั้นออกจากค่าตอบแทนรายสัปดาห์เบื้องต้น ให้ได้ค่าตอบแทนรายสัปดาห์หลังหักลดหย่อนทั้งหมดแล้ว
โปรแกรมคอมพิวเตอร์ที่ปฏิบัติงานเดียวกันนี้ก็จะต้องทำตามลำดับของการดำเนินการพื้นฐานเหมือนกัน แม้ว่าค่าต่าง ๆ ที่ต้องการเรียกดูเก็บอยู่ในหน่วยความจำคอมพิวเตอร์ทั้งหมดแล้ว ในคอมพิวเตอร์ยุคแรก ๆ จำนวนชั่วโมงที่ทำงานมักจะเก็บอยู่ในบัตรเจาะรู และอัตราการค่าตอบแทนจะอยู่ในรูปแบบหน่วยความจำอื่นเช่นดรัมแม่เหล็ก เมื่อการคูณกระทำเสร็จสิ้นก็จำเป็นต้องเก็บผลลัพธ์ที่ใดที่หนึ่ง สำหรับเครื่องชนิดดรัมแม่เหล็กก็อาจจะเก็บบันทึกลงดรัมนั่นเอง ซึ่งเป็นการดำเนินการที่ใช้เวลามาก และการดำเนินการถัดไปก็ต้องการอ่านค่านั้นกลับมา ซึ่งทำให้เกิดความล่าช้าเพิ่มขึ้นอีก
ตัวสะสมช่วยให้เกิดประสิทธิภาพในระบบอย่างมหาศาล เปรียบเสมือนพื้นที่กระดาษทดที่ผลลัพธ์ของการดำเนินการหนึ่งสามารถป้อนเข้าการดำเนินการถัดไปได้ โดยประสิทธิภาพลดลงเพียงเล็กน้อยหรือไม่ลดเลย จากตัวอย่างข้างต้น ค่าตอบแทนรายสัปดาห์เบื้องต้นควรคำนวณแล้วเก็บไว้ในตัวสะสม ซึ่งสามารถนำไปใช้คำนวณภาษีเงินได้ทันที สิ่งนี้ตัดขั้นตอนการบันทึกและการอ่านออกจากลำดับ ซึ่งเป็นการดำเนินการที่ต้องทำเป็นสิบเป็นร้อยครั้งตราบเท่าที่การคูณยังมีอยู่