← กลับไปยังบทความทั้งหมด

Rekursiv สถาปัตยกรรมโปรเซสเซอร์เชิงวัตถุยุคบุกเบิก

สรุปใจความสำคัญ

  • ออกแบบโดย David M. Harland ภายใต้บริษัท Linn Products ในช่วงกลางทศวรรษ 1980
  • เป็นสถาปัตยกรรมที่นำแนวคิดการเขียนโปรแกรมเชิงวัตถุ (OOP) มาใช้ในระดับฮาร์ดแวร์โดยตรง
  • ใช้ชิป Objekt ในการจัดการหน่วยความจำเสมือนและตัวระบุวัตถุขนาด 40 บิต แทนการใช้ที่อยู่หน่วยความจำแบบปกติ
  • โครงการถูกยกเลิกในปี 1988 เนื่องจากประสิทธิภาพของโปรเซสเซอร์กระแสหลักอย่าง Sun SPARC และ Intel 486 สูงกว่า

Rekursiv คือโปรเซสเซอร์คอมพิวเตอร์ที่ได้รับการออกแบบโดย David M. Harland ในช่วงกลางทศวรรษ 1980 ภายใต้หน่วยงานหนึ่งของบริษัท Linn Products ซึ่งเป็นผู้ผลิตเครื่องเสียงระดับไฮไฟ (hi-fi) โดย Rekursiv เป็นหนึ่งในสถาปัตยกรรมคอมพิวเตอร์เพียงไม่กี่รูปแบบที่พยายามนำแนวคิดของการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming - OOP) มาปรับใช้ในระดับฮาร์ดแวร์โดยตรง ซึ่งถือเป็นรูปแบบหนึ่งของ สถาปัตยกรรมคอมพิวเตอร์ภาษาชั้นสูง (High-level language computer architecture)

ความโดดเด่นของ Rekursiv คือการทำงานกับ "วัตถุ" (Objects) โดยตรง แทนที่จะทำงานกับบิต (Bits), นิบเบิล (Nibbles), ไบต์ (Bytes) หรือเวิร์ด (Words) เหมือนโปรเซสเซอร์ทั่วไป นอกจากนี้ยังมีการใช้หน่วยความจำเสมือน (Virtual Memory) เพื่อเป็นที่เก็บวัตถุแบบถาวร และชุดคำสั่งของโปรเซสเซอร์ยังรองรับการเรียกซ้ำ (Recursion) ซึ่งเป็นที่มาของชื่อ Rekursiv

ประวัติการพัฒนา

โครงการ Rekursiv เริ่มต้นจากความต้องการปรับปรุงระบบควบคุมสายการผลิตในโรงงานของ Linn ที่เมืองกลาสโกว์ ประเทศสกอตแลนด์ ในขณะนั้นสายการผลิตถูกควบคุมด้วยระบบ VAX-11 ซึ่งทำงานได้ช้าและเขียนโปรแกรมให้มีความยืดหยุ่นได้ยากตามความต้องการของ Ivor Tiefenbrun ผู้ก่อตั้งบริษัท Linn

ในช่วงต้นทศวรรษ 1980 Tiefenbrun เชื่อว่าการเขียนโปรแกรมเชิงวัตถุจะเป็นทางออกของปัญหาดังกล่าว เขาจึงจ้างโปรแกรมเมอร์มาเขียนภาษา Smalltalk เวอร์ชันที่ปรับปรุงสำหรับระบบ VAX โดยนำไวยากรณ์บางส่วนมาจากภาษา ALGOL ซึ่งระบบนี้ถูกเรียกว่า LINGO แม้ว่า LINGO จะทำงานได้ แต่ประสิทธิภาพบนแพลตฟอร์ม VAX นั้นต่ำมาก ทำให้ Tiefenbrun สรุปว่าทางแก้ไม่ใช่การปรับปรุงภาษาบน VAX แต่เป็นการสร้างหน่วยประมวลผลกลาง (CPU) ใหม่ที่ออกแบบมาเพื่อรันโปรแกรมเชิงวัตถุโดยเฉพาะ

ในปี 1984 Tiefenbrun ได้ก่อตั้งบริษัทลูกชื่อ Linn Smart Computing โดยมีศาสตราจารย์ David Harland จาก University of Strathclyde เป็นผู้ดูแล และโครงการ Rekursiv จึงเริ่มต้นขึ้น จนกระทั่งในปี 1988 ระบบเวอร์ชันแรกได้ถูกสร้างขึ้นในรูปแบบของบอร์ด VMEbus รุ่นต้นแบบที่ชื่อว่า "Hades" ซึ่งประกอบด้วยชิป 4 ตัวและ RAM ขนาด 80 MB โดยออกแบบมาเพื่อติดตั้งในระบบโฮสต์ เช่น เวิร์กสเตชัน Sun-3

อย่างไรก็ตาม Rekursiv ไม่ประสบความสำเร็จในเชิงพาณิชย์และไม่ได้รับการพัฒนาจนสมบูรณ์ เนื่องจากในช่วงเวลาเดียวกันนั้นมีโปรเซสเซอร์รุ่นใหม่อย่าง Sun SPARC และ Intel 486 ออกสู่ตลาด ซึ่งมีประสิทธิภาพสูงกว่ามาก นอกจากนี้มีการรายงานว่าภาษา LINGO เวอร์ชันใหม่ที่เขียนขึ้นสำหรับระบบ Sun SPARC สามารถทำงานได้เร็วกว่าฮาร์ดแวร์ Rekursiv ถึงสองเท่า ส่งผลให้โครงการนี้ถูกยกเลิกและบริษัทถูกปิดตัวลงในเวลาต่อมา

รายละเอียดทางเทคนิค

แนวคิดพื้นฐาน

แนวคิดหลักของแพลตฟอร์ม Rekursiv คือการสร้างระบบจัดเก็บวัตถุแบบถาวรที่สนับสนุนโดยฮาร์ดแวร์ (Hardware-assisted persistent object store) โดยระบบจะเขียนสถานะของหน่วยความจำลงในดิสก์โดยอัตโนมัติและมองไม่เห็น โดยไม่ต้องอาศัยการแทรกแซงจากระบบปฏิบัติการหรือโปรแกรมของผู้ใช้ ทำให้มันทำงานคล้ายกับเครื่องมือจัดการฐานข้อมูลวัตถุ (Object-database engine)

เพื่อให้ระบบทำงานได้อย่างมีประสิทธิภาพ Rekursiv ถูกออกแบบให้โปรแกรมเมอร์สามารถเขียนชุดคำสั่งสถาปัตยกรรม (Instruction Set Architecture - ISA) ของตนเองให้เหมาะสมกับภาษาที่ใช้งาน โดยชุดคำสั่งไมโครโค้ด (Microcode) จะถูกเก็บไว้ใน Static RAM ทั้งนี้ Linn ได้จัดเตรียม ISA สำหรับภาษา C ไว้ให้เป็นมาตรฐาน

การจัดการหน่วยความจำ

ระบบ Rekursiv ไม่ได้ใช้ที่อยู่หน่วยความจำ (Memory Address) แบบปกติ แต่จะกำหนดตัวระบุวัตถุ (Object Identifier) ขนาด 40 บิตให้กับแต่ละวัตถุ ซึ่งชิปที่ชื่อว่า "Objekt" จะนำตัวระบุนี้ไปทำ Hash เพื่อใช้เป็นพอยเตอร์ชี้ไปยังหน่วยความจำจริง และจัดการการแมปหน่วยความจำวัตถุไปยังฮาร์ดดิสก์เพื่อการจัดเก็บถาวร

สำหรับการจัดการคืนหน่วยความจำ (Garbage Collection) ชิป Objekt จะแบ่ง RAM ออกเป็นสองส่วน โดยใช้ส่วนหนึ่งสำหรับการสร้างวัตถุใหม่ และเว้นอีกส่วนหนึ่งไว้ เมื่อหน่วยความจำส่วนที่ใช้งานอยู่เต็ม ระบบจะหยุดทำงานชั่วคราวเพื่อคัดลอกวัตถุที่มีพอยเตอร์ใช้งานอยู่ไปยังส่วนที่ว่าง และสลับส่วนการทำงาน (คล้ายกับแนวคิด Semi-space collector) หากหน่วยความจำจำกัดมาก ระบบจะพยายามย้ายวัตถุบางส่วนลงดิสก์ก่อน

โครงสร้างของพอยเตอร์ 40 บิต

ใน Rekursiv วัตถุเป็นโครงสร้างแบบผสม (Composite structures) โดยใช้พอยเตอร์ 40 บิตในการอ้างอิง ซึ่งมีการกำหนดความหมายของบิตดังนี้:

  • บิตที่มีนัยสำคัญสูงสุด (MSB): หากเป็น 1 หมายถึงค่านี้คือตัวระบุวัตถุ (Object Identifier) หากเป็น 0 หมายถึงเป็นค่าไบนารีที่ไม่มีการระบุประเภท (Untyped binary value) ซึ่งใช้สำหรับเก็บข้อมูลขนาดใหญ่ เช่น รูปภาพดิจิทัล
  • บิตที่สองจากซ้าย (Second MSB): หากเป็น 0 จะเป็นการระบุว่าเป็น "Compact Object" ซึ่งจะใช้ 5 บิตถัดมาเพื่อระบุประเภท (Type) ตามที่กำหนดใน ISA (เช่น จำนวนเต็ม หรือ ข้อความสั้น) และใช้ 32 บิตที่เหลือเก็บค่าจริงของข้อมูล วิธีนี้ช่วยให้โปรเซสเซอร์เข้าถึงข้อมูลได้ทันทีโดยไม่ต้องตามพอยเตอร์ไปยังหน่วยความจำจริง ซึ่งช่วยเพิ่มประสิทธิภาพและลดการใช้หน่วยความจำ

เนื่องจากบิตสองบิตแรกถูกใช้เป็นแฟล็กสถานะ ทำให้ระบบสามารถระบุวัตถุได้สูงสุดเพียง 238 วัตถุ และเนื่องจากกระบวนการ Garbage Collection อาจทำให้เกิดช่องว่างของตัวระบุ ระบบจึงต้องมีการเขียนภาพจำลองระบบ (System Image) ลงดิสก์เป็นระยะ เพื่อทำการจัดลำดับตัวระบุวัตถุใหม่ให้ต่อเนื่องกัน

คำถามที่พบบ่อย

Rekursiv คืออะไร?

Rekursiv คือโปรเซสเซอร์คอมพิวเตอร์ที่ออกแบบมาเพื่อรองรับการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) ในระดับฮาร์ดแวร์โดยเฉพาะ พัฒนาโดยบริษัท Linn Products ในช่วงทศวรรษ 1980

ทำไม Rekursiv ถึงไม่ประสบความสำเร็จในเชิงพาณิชย์?

เนื่องจากในช่วงเวลาที่พัฒนาเสร็จสิ้น โปรเซสเซอร์รุ่นใหม่อย่าง Sun SPARC และ Intel 486 มีประสิทธิภาพสูงกว่ามาก และการรันภาษา LINGO บนฮาร์ดแวร์มาตรฐานในขณะนั้นสามารถทำงานได้เร็วกว่าฮาร์ดแวร์เฉพาะทางของ Rekursiv

จุดเด่นทางเทคนิคของ Rekursiv คืออะไร?

การทำงานกับวัตถุ (Objects) โดยตรงแทนที่บิตหรือไบต์, การรองรับการเรียกซ้ำ (Recursion) ในชุดคำสั่ง, และการมีระบบจัดเก็บวัตถุแบบถาวรที่จัดการโดยฮาร์ดแวร์

ชิป Objekt ทำหน้าที่อะไรในระบบ Rekursiv?

ชิป Objekt ทำหน้าที่จัดการตัวระบุวัตถุ (Object ID) ขนาด 40 บิต, ทำการ Hash เพื่อหาตำแหน่งในหน่วยความจำจริง, และจัดการการคืนหน่วยความจำ (Garbage Collection) รวมถึงการแมปข้อมูลลงฮาร์ดดิสก์