ปรกติแล้วผมจะให้ความสนใจกับความก้าวหน้าทางด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ครับ โดยเฉพาะพวกเครื่องบินรบ, เรือรบ, หุ่นยนต์ และยานอวกาศนี่จะสนใจเป็นพิเศษเลยทีเดียว

ความรู้ในการสร้างสิ่งประดิษฐ์ทรงภูมิปัญญาเหล่านี้ ส่วนใหญ่แล้วถูกเก็บงำเอาไว้ ไม่ค่อยได้เปิดเผยออกมาสู่สาธารณชนมากนัก ซึ่งแบบนี้ทำให้นึกถึงสูตรของน้ำโคคาโคล่าเลย ที่ถึงแม้จะมีนักเคมีแกะส่วนประกอบของมันออกมาได้แล้ว แต่ก็ยังไม่รู้สัดส่วนของมันอยู่ดี

ประเด็นที่ผมจะบอกก็คือ ถึงแม้มันจะเป็นความลับ แล้วเราเองก็ไม่รู้จะค้นหาความลับนี้มาได้ยังไง แต่ในฐานะที่เรามีความรู้ในเรื่องนั้น ๆ ในระดับหนึ่ง เราเองก็สามารถ…เดา…ได้เหมือนกัน ว่าสิ่งประดิษฐ์ทรงภูมิปัญญาเหล่านั้น มันน่า…จะ…มีกลไกในการทำงานยังไงบ้าง

ยกตัวอย่างเรื่องนึงซึ่งผมสนใจมาก มันเป็นเรื่องเมื่อปี พ.ศ. 2540 ครับ ตอนนั้นนาซ่าส่งยานอวกาศไปลงจอดบนดาวอังคารอย่างนิ่มนวล จากนั้นยานดังกล่าวก็ปล่อยหุ่นยนต์ ออกเดินทางเป็นระยะสั้น ๆ เพื่อสำรวจอะไรหลาย ๆ อย่างรอบ ๆ ตัว

mars_exploration.jpg

จุดที่ผมสนใจก็คือมีอยู่ช่วงหนึ่ง สื่อมวลชนสหรัฐได้รายงานว่า หุ่นยนต์ตัวดังกล่าวเกิดเดี้ยงขึ้นมา จึงจำเป็นต้องอัพโหลดซอฟต์แวร์ใหม่ส่งไปให้ แล้วสั่งให้ระบบ reboot อีกครั้ง เพื่อให้เข้าสู่สภาวะการทำงานปรกติ … ให้เหมือนเดิม

พอได้ยินแบบนี้ก็เลยคิดตาม คิดว่านักวิทยาศาสตร์และวิศวกรที่ออกแบบต้องเก่งมาก เพราะคงคิดเผื่อเอาไว้เรื่องพวกนี้ด้วย มันเป็นเรื่องที่มีโอกาสเกิดขึ้นได้ แล้วมันก็ดันเกิดขึ้นจริง ๆ

ตอนนั้นผมนึกจำลองแบบออกมาครับว่า เจ้าหุ่นยนต์ตัวดังกล่าว น่าจะมีสถาปัตยกรรมหน่วยความจำยังไง มันถึงได้รองรับการเปลี่ยนซอฟต์แวร์แบบนี้ได้ เพราะอย่างที่เรารู้กันว่าซอฟต์แวร์และระบบปฏิบัติการนั้น จริง ๆ แล้วทำงานอยู่บนหน่วยความจำ

หน่วยความจำของคอมพิวเตอร์มักจะถูกมองเป็นผืนใหญ่ ๆ ผืนเดียว โดยหลัก ๆ แล้วจะแบ่งพื้นที่ส่วนหนึ่งไว้สำหรับระบบปฏิบัติการ แล้วพื้นที่ส่วนที่เหลือไว้ใช้สำหรับซอฟต์แวร์อื่น ๆ ซึ่งถ้าเป็นหน่วยความจำของเครื่องพีซีทั่ว ๆ ที่พวกเราใช้กัน ก็มักจะจัดรูปแบบหน่วยความจำแบบรูปข้างล่าง

หน่วยความจำของพีซี

แต่ผมว่าหุ่นยนต์สำรวจดาวอังคาร คงไม่มีรูปแบบหน่วยความจำที่กระจอกแบบนั้นหรอก ว่าแมะ? ผมว่ามันต้องซับซ้อนกว่านี้นะ อาจจะเป็น Duo Memory หรือไม่ก็เป็น RAID Memory อ๊ะ เป็น RAID ไม่ได้สิ เพราะ RAID เป็นเรื่องของ Disk งั้นเปลี่ยนเป็น RAIM แทนดีกว่า

RAID = Redundant Array Of Inexpensive Disk

RAIM = Redundant Array Of Inexpensive Memory (อันนี้ตั้งเอง)

ว่าแล้วก็มาใช้ความรู้ที่เราพอมีเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์ มาลองจำลองแบบหน่วยความจำของหุ่นยนต์ตัวดังกล่าวดูดีกว่า แบบว่าช่วยไม่ได้อ่ะ ก็นาซ่าไม่ยอมเล่าให้อ่านบ้างนี่นา ก็ต้องมานั่งเทียนคิดเองแบบนี้แหล่ะ

โดยหน่วยความจำของหุ่นยนต์ตัวดังกล่าว ถ้าทายไม่ผิดแล้วน่าจะมีลักษณะแบบนี้

หน่วยความจำของหุ่นยนต์ที่นั่งเทียนเอาไว้

ผมนั่งเทียนไว้ว่าหุ่นยนต์ตัวดังกล่าว ต้องมีหน่วยความจำที่เป็นพื้นฐานสุด ๆ อยู่ผืนนึง ซึ่งถ้าผืนนั้นเดี้ยงล่ะก็ มีอันจบเห่กันพอดี แถมยังต้องมีหน่วยความจำอีกหลาย ๆ ผืน และแต่ล่ะผืนสามารถบรรจุระบบปฏิบัติการตั้งต้นเอาไว้ได้ แล้วก็สามารถสลับสับเปลี่ยนกันทำงานได้ด้วย นั่นหมายความว่าถ้ามีบล็อคนึงเดี้ยงไป เราก็สามารถจะอัพโหลดระบบปฏิบัติการขึ้นอีกบล็อคนึงได้ แล้วก็กระตุ้นให้บล็อคถัดไปทำงานต่อไป

เพราะการที่หน่วยความจำมันทำงานไม่ได้ อาจไม่ได้หมายความว่ามันแฮงค์ในระดับซอฟต์แวร์ แต่มันอาจหมายถึงการเดี้ยงในระดับวงจรอิเลกทรอนิกส์เลยก็เป็นได้

ผมเองก็นั่งเทียนโม้ได้แค่นี้แหล่ะ ซึ่งก็ไม่รู้ว่าจริง ๆ แล้วนั้น หน่วยความจำบนหุ่นยนต์ Sojourner มันจะมีลักษณะแบบนี้หรือเปล่า

ถ้าไม่มีใครสอนหรือเล่าวิธีการออกแบบสิ่งประดิษฐ์ทรงภูมิปัญญาให้เรารู้ เราก็ใช้พื้นฐานที่เรารู้จำลองแบบด้วยตัวเราเองครับ ถึงแม้มันจะไม่เหมือน 100% ก็ตาม

[tags]คอมพิวเตอร์,ยานอวกาศ,หุ่นยนต์,หน่วยความจำ,ดาวอังคาร[/tags]

Related Posts

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *