คอมพิวเตอร์โปรแกรมที่จัดเก็บไว้
คอมพิวเตอร์แบบโปรแกรมจัดเก็บคือคอมพิวเตอร์ที่อ่านคำสั่งโปรแกรมที่กำลังดำเนินการโดยตรงจากหน่วยเก็บข้อมูลอิเล็กทรอนิกส์ความเร็วสูง[ 1 ]วิธีนี้ช่วยลดต้นทุนการตั้งค่าที่ใช้เวลานานซึ่งเกี่ยวข้องกับ คอมพิวเตอร์แบบเสียบ ปลั๊กและช่วยขจัดปัญหาคอขวดด้านความเร็วที่เกิดจากการใช้เครื่องอ่านเชิงกล เช่นบัตรเจาะรูหรือเทปเจาะรู[ 2 ]
คำจำกัดความมักจะขยายออกไปโดยมีข้อกำหนดว่าการจัดการโปรแกรมและข้อมูลในหน่วยความจำจะต้องสามารถสลับเปลี่ยนกันได้หรือเป็นแบบเดียวกัน[ 3 ] [ 4 ] [ 5 ]
คำอธิบาย
แม้ว่าทั้งคำสั่งและข้อมูลจะถูกจัดเก็บไว้ในระบบหน่วยความจำเดียวกัน แต่เส้นทางการเข้าถึงอาจแตกต่างกันสถาปัตยกรรม von Neumannใช้เส้นทางการเข้าถึงเดียวกันสำหรับทั้งคำสั่งและข้อมูล ในขณะที่สถาปัตยกรรม Harvardมีเส้นทางการเข้าถึงแยกต่างหากสำหรับคำสั่งและข้อมูล[ 6 ] [ 7 ] อย่างไรก็ตาม บางครั้งคำว่าคอมพิวเตอร์แบบโปรแกรมที่จัดเก็บไว้ถูกใช้เป็นคำพ้องความหมายสำหรับสถาปัตยกรรม von Neumann [ 8 ] [ 9 ] Hennessy และ Patterson เขียนว่าเครื่อง Harvard รุ่นแรกๆ ถูกมองว่าเป็น "สิ่งที่ต่อต้านความก้าวหน้าโดยผู้สนับสนุนคอมพิวเตอร์แบบโปรแกรมที่จัดเก็บไว้" [ 10 ]
ประวัติศาสตร์
แนวคิดของคอมพิวเตอร์โปรแกรมที่จัดเก็บไว้สามารถสืบย้อนไปถึงแนวคิดเชิงทฤษฎีของเครื่องจักรทัวริงสากล ในปี พ.ศ. 2479 [ 11 ]ฟอน นอยมันน์ ทราบถึงเอกสารฉบับนี้ และเขาก็ประทับใจเอกสารนี้กับผู้ร่วมงานของเขา[ 12 ]
คอมพิวเตอร์ยุคแรกๆ หลายเครื่อง เช่นคอมพิวเตอร์ Atanasoff–Berryนั้นไม่สามารถตั้งโปรแกรมใหม่ได้ มันทำงานตามโปรแกรมที่ถูกกำหนดไว้ตายตัวเพียงโปรแกรมเดียว เนื่องจากไม่มีคำสั่งโปรแกรม จึงไม่จำเป็นต้องมีที่จัดเก็บโปรแกรม ส่วนคอมพิวเตอร์อื่นๆ แม้ว่าจะสามารถตั้งโปรแกรมได้ แต่ก็จัดเก็บโปรแกรมไว้ในเทปเจาะรูซึ่งต้องป้อนเข้าไปในระบบเมื่อจำเป็น เช่นเดียวกับคอมพิวเตอร์Zuse Z3และHarvard Mark Iหรือตั้งโปรแกรมได้โดยการจัดการสวิตช์และปลั๊กด้วยตนเองเท่านั้น เช่นเดียวกับคอมพิวเตอร์ Colossus
ในปี พ.ศ. 2479 Konrad Zuseได้คาดการณ์ไว้ในคำขอสิทธิบัตรสองฉบับว่าคำสั่งเครื่องจักรสามารถจัดเก็บไว้ในพื้นที่จัดเก็บเดียวกันกับที่ใช้สำหรับข้อมูลได้[ 13 ]
ในปี พ.ศ. 2491 ENIACซึ่งเดิมทีตั้งโปรแกรมโดยการเชื่อมต่อระบบย่อยด้วยสายเคเบิลทางไฟฟ้า ได้รับการดัดแปลงให้รันโปรแกรมที่จัดเก็บในรูปแบบดิจิทัลในตารางฟังก์ชัน โดยรันโปรแกรมแรกที่จัดเก็บในลักษณะนี้เมื่อวันที่ 12 เมษายน พ.ศ. 2491 [ 14 ]
ในปี พ.ศ. 2491 คอมพิวเตอร์Manchester Babyที่สร้างขึ้นที่มหาวิทยาลัยแมนเชสเตอร์ [ 15 ]ได้รับการยอมรับโดยทั่วไปว่าเป็นคอมพิวเตอร์อิเล็กทรอนิกส์เครื่องแรกของโลกที่สามารถรันโปรแกรมที่จัดเก็บไว้ได้ ซึ่งเกิดขึ้นเมื่อวันที่ 21 มิถุนายน พ.ศ. 2491 [ 16 ] [ 17 ] อย่างไรก็ตาม Baby ไม่ได้ถูกมองว่าเป็นคอมพิวเตอร์ที่สมบูรณ์แบบ แต่เป็นเพียงต้นแบบของ คอมพิวเตอร์ Manchester Mark 1ซึ่งเริ่มนำไปใช้ในการวิจัยครั้งแรกในเดือนเมษายน พ.ศ. 2492 ในวันที่ 6 พฤษภาคม พ.ศ. 2492 EDSACที่มหาวิทยาลัยเคมบริดจ์ได้รันโปรแกรมแรก ทำให้เป็นคอมพิวเตอร์ดิจิทัลแบบจัดเก็บโปรแกรมอีกเครื่องหนึ่ง[ 18 ]บางครั้งมีการอ้างว่าIBM SSECซึ่งใช้งานได้ในเดือนมกราคม พ.ศ. 2491 เป็นคอมพิวเตอร์แบบจัดเก็บโปรแกรมเครื่องแรก[ 19 ]ข้ออ้างนี้เป็นที่ถกเถียงกัน โดยเฉพาะอย่างยิ่งเนื่องจากระบบหน่วยความจำแบบลำดับชั้นของ SSEC และเนื่องจากบางแง่มุมของการทำงาน เช่น การเข้าถึงรีเลย์หรือไดรฟ์เทป ถูกกำหนดโดยการเสียบปลั๊ก[ 20 ]คอมพิวเตอร์แบบโปรแกรมจัดเก็บเครื่องแรกที่สร้างขึ้นในทวีปยุโรปคือMESMซึ่งสร้างเสร็จในสหภาพโซเวียตในปี พ.ศ. 2493 [ 21 ]
คอมพิวเตอร์แบบเก็บโปรแกรมเครื่องแรก
คอมพิวเตอร์หลายเครื่องอาจถือได้ว่าเป็นคอมพิวเตอร์แบบจัดเก็บโปรแกรมเครื่องแรก ขึ้นอยู่กับเกณฑ์[ 4 ]
- IBM SSECได้รับการออกแบบในช่วงปลายปี 1944 และเริ่มใช้งานได้ในเดือนมกราคม 1948 แต่เป็นระบบอิเล็กโทรเมคานิกส์[ 22 ]
- ในเดือนเมษายน พ.ศ. 2491 ได้มีการปรับปรุงENIACให้ทำงานเป็นคอมพิวเตอร์แบบจัดเก็บโปรแกรม โดยจัดเก็บโปรแกรมด้วยการตั้งค่าแป้นหมุนในตารางฟังก์ชัน ซึ่งสามารถจัดเก็บคำสั่งได้ถึง 3,600 หลักทศนิยม เครื่องนี้รันโปรแกรมที่จัดเก็บไว้ครั้งแรกเมื่อวันที่ 12 เมษายน พ.ศ. 2491 และรันโปรแกรมการผลิตครั้งแรกเมื่อวันที่ 17 เมษายน[ 23 ] [ 24 ]อย่างไรก็ตาม นักประวัติศาสตร์คอมพิวเตอร์บางคนไม่ถือว่านี่เป็นคอมพิวเตอร์แบบจัดเก็บโปรแกรม[ 25 ]
- ARC2ซึ่งเป็นเครื่องรีเลย์ที่พัฒนาโดยAndrew BoothและKathleen Boothที่Birkbeck มหาวิทยาลัยลอนดอนได้เปิดใช้งานอย่างเป็นทางการเมื่อวันที่ 12 พฤษภาคม พ.ศ. 2491 [ 26 ] โดยมีอุปกรณ์จัดเก็บ แบบดรัมหมุนตัวแรก[ 27 ] [ 28 ]
- Manchester Babyเป็นคอมพิวเตอร์ต้นแบบระบบอิเล็กทรอนิกส์ที่สามารถรันโปรแกรมที่จัดเก็บไว้ได้สำเร็จในวันที่ 21 มิถุนายน 1948 ต่อมาได้รับการพัฒนาเป็นManchester Mark 1ซึ่งสามารถรันโปรแกรมแรกได้ในต้นเดือนเมษายน 1949
- เครื่องคำนวณอัตโนมัติแบบหน่วงเวลาอิเล็กทรอนิกส์ (EDSAC) ซึ่งรันโปรแกรมแรกเมื่อวันที่ 6 พฤษภาคม 1949 ได้กลายเป็นคอมพิวเตอร์ที่ใช้งานได้จริงอย่างเต็มรูปแบบ ซึ่งให้บริการแก่ชุมชนผู้ใช้มากกว่าแค่ผู้พัฒนา
- EDVACถูกคิดค้นขึ้นในเดือนมิถุนายน ปี 1945 ในร่างรายงานฉบับแรกเกี่ยวกับ EDVACแต่ส่งมอบในเดือนสิงหาคม ปี 1949 และเริ่มใช้งานจริง (ในขอบเขตจำกัด) ในปี 1951
- BINACส่งมอบให้กับลูกค้าเมื่อวันที่ 22 สิงหาคม พ.ศ. 2492 มันทำงานได้ที่โรงงาน แต่มีข้อโต้แย้งว่ามันทำงานได้อย่างน่าพอใจหลังจากส่งมอบหรือไม่ หากมันเสร็จสมบูรณ์ตามเวลาที่คาดการณ์ไว้ มันจะเป็นคอมพิวเตอร์แบบโปรแกรมจัดเก็บเครื่องแรกของโลก มันเป็นคอมพิวเตอร์แบบโปรแกรมจัดเก็บเครื่องแรกในสหรัฐอเมริกา[ 29 ]
- ในปี ค.ศ. 1951 คอมพิวเตอร์ดิจิทัลอิเล็กทรอนิกส์ Ferranti Mark 1ซึ่งเป็นรุ่นปรับปรุงของ Manchester Mark 1 ได้กลายเป็นคอมพิวเตอร์ดิจิทัลอิเล็กทรอนิกส์เครื่องแรกที่วางจำหน่ายในเชิงพาณิชย์
- คอมพิวเตอร์Bull Gamma 3 (ปี 1952) และIBM 650 (ปี 1953) เป็นคอมพิวเตอร์เชิงพาณิชย์รุ่นแรกที่ผลิตในปริมาณมาก โดยมียอดขายประมาณ 1,200 และ 2,000 เครื่อง ตามลำดับ
- คอมพิวเตอร์ทรานซิสเตอร์ของมหาวิทยาลัยแมนเชสเตอร์ถือเป็นคอมพิวเตอร์แบบจัดเก็บโปรแกรมที่ใช้ทรานซิสเตอร์เครื่องแรก ซึ่งเริ่มใช้งานได้ในเดือนพฤศจิกายน พ.ศ. 2496 [ 30 ] [ 31 ]
โทรคมนาคม
แนวคิดของการใช้คอมพิวเตอร์โปรแกรมที่จัดเก็บไว้สำหรับการสลับวงจรโทรคมนาคมเรียกว่าการควบคุมโปรแกรมที่จัดเก็บไว้ (SPC) แนวคิดนี้มีบทบาทสำคัญในการพัฒนาระบบสวิตช์อิเล็กทรอนิกส์ระบบ แรก โดยAmerican Telephone and Telegraph (AT&T) ในระบบเบลล์ [ 32 ]ซึ่งการพัฒนานี้เริ่มต้นอย่างจริงจังราวปี 1954 ด้วยการออกแบบแนวคิดเบื้องต้นโดยErna Schneider Hooverที่Bell Labs ระบบ ดังกล่าวระบบแรกถูกติดตั้งเพื่อทดลองใช้งานในเมืองมอร์ริส รัฐอิลลินอยส์ในปี 1960 [ 33 ]สื่อจัดเก็บคำสั่งโปรแกรมคือหน่วยความจำแบบ flying-spotซึ่ง เป็น แผ่นฟิล์มถ่ายภาพที่อ่านโดยเครื่องสแกนแบบออปติคอลที่มีความเร็วในการเข้าถึงประมาณหนึ่งไมโครวินาที[ 34 ]สำหรับข้อมูลชั่วคราว ระบบใช้หลอดเก็บข้อมูลไฟฟ้าสถิต แบบ barrier-grid