อ่าน 15 นาที
สถาปัตยกรรม IBM System/360
สถาปัตยกรรม IBM System/360 เป็น สถาปัตยกรรม ที่ไม่ขึ้นกับรุ่น สำหรับ คอมพิวเตอร์เมนเฟรม ตระกูล S/360 ทั้งหมดรวมถึงแต่ไม่จำกัดเฉพาะ สถาปัตยกรรมชุดคำสั่ง...
สถาปัตยกรรม IBM System/360
| นักออกแบบ | ไอบีเอ็ม |
|---|---|
| บิต | 32 บิต |
| แนะนำ | 7 เมษายน 2507 |
| ออกแบบ | ซีไอเอสซี |
| พิมพ์ | รีจิสเตอร์-รีจิสเตอร์รีจิสเตอร์-หน่วยความจำหน่วยความจำ-หน่วยความจำ |
| การเข้ารหัส | ตัวแปร(ความยาว 2, 4 หรือ 6 ไบต์) |
| การแตกแขนง | รหัสเงื่อนไข , การจัดทำดัชนี, การนับ |
| เอนเดียนเนส | ใหญ่ |
| ขนาดหน้ากระดาษ | ไม่มีข้อมูล ยกเว้น360/67 |
| เปิด | ใช่ |
| ทะเบียน | |
| อเนกประสงค์ | 16× 32 บิต |
| จุดลอยตัว | 4× 64 บิต |
| ประวัติความเป็นมาของเมนเฟรม IBMตั้งแต่ปี 1952 จนถึงปัจจุบัน |
|---|
| ชื่อตลาด |
| สถาปัตยกรรม |
สถาปัตยกรรม IBM System/360 เป็น สถาปัตยกรรมที่ไม่ขึ้นกับรุ่น สำหรับ คอมพิวเตอร์เมนเฟรมตระกูลS/360ทั้งหมดรวมถึงแต่ไม่จำกัดเฉพาะสถาปัตยกรรมชุดคำสั่งองค์ประกอบของสถาปัตยกรรมได้รับการบันทึกไว้ในหลักการทำงานของ IBM System/360 [ 1 ] [ 2 ]และคู่มือข้อมูลผู้ผลิตอุปกรณ์ดั้งเดิมของ IBM System/360 I/O Interface Channel to Control Unit [ 3 ]
คุณสมบัติ
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
สถาปัตยกรรม System/360 มีคุณสมบัติดังต่อไปนี้:
- รีจิสเตอร์อเนกประสงค์32 บิต จำนวน 16 ตัว
- รีจิสเตอร์จุดลอยตัว 64 บิต 4 ตัว
- รีจิสเตอร์สถานะโปรเซสเซอร์ (PSW) ขนาด 64 บิต ซึ่งรวมถึงที่อยู่คำสั่งขนาด 24 บิต
- พื้นที่หน่วยความจำที่สามารถเข้าถึงได้ทีละไบต์ ขนาด 24 บิต (16 เมกะไบต์)
- ลำดับไบต์/เวิร์ดแบบบิ๊กเอนเดียน
- ชุดคำสั่งมาตรฐานซึ่งรวมถึงคำสั่งคำนวณเลขฐานสองแบบคงที่และคำสั่งตรรกะ มีอยู่ในทุกรุ่นของ System/360 (ยกเว้นรุ่น Model 20ดูรายละเอียดด้านล่าง)
- ชุดคำสั่งเชิงพาณิชย์ซึ่งเพิ่มคำสั่งคำนวณเลขฐานสิบ เป็นตัวเลือกเสริมสำหรับบางรุ่น เช่นเดียวกับชุดคำสั่งทางวิทยาศาสตร์ซึ่งเพิ่มคำสั่งคำนวณเลข ทศนิยม ส่วนชุดคำสั่งสากล นั้น ประกอบด้วยคำสั่งทั้งหมดข้างต้น รวมทั้งคำสั่งป้องกันการจัดเก็บข้อมูล และเป็นมาตรฐานสำหรับบางรุ่น
- โมเดล44มีคำสั่งเฉพาะสำหรับการรับข้อมูลและการประมวลผลแบบเรียลไทม์อยู่บ้าง แต่ขาดคำสั่งสำหรับการถ่ายโอนข้อมูลระหว่างหน่วยเก็บข้อมูล อย่างไรก็ตาม IBM ได้นำเสนอคุณสมบัติ " ชุดคำสั่งเชิงพาณิชย์"ที่ทำงานในหน่วยเก็บข้อมูลแบบบัมพ์ และจำลองคำสั่งที่ขาดหายไปเหล่านั้น
- รุ่นModel 20นำเสนอชุดคำสั่งมาตรฐานเวอร์ชันที่ลดทอนลง โดยจำกัดไว้ที่รีจิสเตอร์ทั่วไปแปดตัวพร้อมคำสั่งแบบครึ่งเวิร์ด (16 บิต) เท่านั้น รวมถึงชุดคำสั่งเชิงพาณิชย์ และคำสั่งเฉพาะสำหรับการรับเข้า/ส่งออกข้อมูล
- โมเดล67ประกอบด้วยคำสั่งบางอย่างเพื่อจัดการที่อยู่ 32 บิตและ "การแปลที่อยู่แบบไดนามิก" พร้อมด้วยคำสั่งพิเศษเพิ่มเติมเพื่อจัดเตรียมหน่วยความจำเสมือน[ 7 ]
หน่วยความจำ
หน่วยความจำ ( พื้นที่จัดเก็บ ) ใน System/360 ถูกกำหนดแอดเดรสใน หน่วยไบต์ 8 บิตคำสั่งต่างๆ ทำงานกับหน่วยที่ใหญ่กว่าที่เรียกว่าhalfword (2 ไบต์), fullword (4 ไบต์), doubleword (8 ไบต์), quadword (16 ไบต์) และบล็อกพื้นที่จัดเก็บ 2048 ไบต์ โดยระบุแอดเดรสซ้ายสุด (แอดเดรสต่ำสุด) ของหน่วยนั้น ภายใน halfword, fullword, doubleword หรือ quadword ไบต์ที่มีหมายเลขต่ำกว่าจะมีความสำคัญมากกว่าไบต์ที่มีหมายเลขสูงกว่า ซึ่งบางครั้งเรียกว่าbig-endianการใช้งานหน่วยเหล่านี้หลายอย่างจำเป็นต้องจัดเรียงให้ตรงกับขอบเขตที่กำหนด ในบทความนี้คำว่า word ที่ไม่มีคำ ขยาย หมายถึงfullword
สถาปัตยกรรมดั้งเดิมของ System/360 รองรับ หน่วยความจำได้สูงสุด 2 24 = 16,777,216 ไบต์ รุ่น Model 67 ในภายหลัง ได้ขยายสถาปัตยกรรมเพื่อให้รองรับหน่วยความจำเสมือนได้สูงสุด 2 32 = 4,294,967,296 ไบต์ [ a ]
การแก้ไขปัญหา
System/360 ใช้การกำหนดแอดเดรสแบบตัดทอนคล้ายกับUNIVAC III [ 8 ]นั่นหมายความว่าคำสั่งจะไม่ประกอบด้วยแอดเดรสที่สมบูรณ์ แต่จะระบุรีจิสเตอร์ฐานและค่าออฟเซ็ตบวกจากแอดเดรสในรีจิสเตอร์ฐาน ในกรณีของ System/360 แอดเดรสฐานจะอยู่ในรีจิสเตอร์ทั่วไป 1 ใน 15 [ b ]ตัว ในบางคำสั่ง เช่น การเลื่อนบิต จะมีการคำนวณแบบเดียวกันสำหรับปริมาณ 32 บิตที่ไม่ใช่แอดเดรส
รูปแบบข้อมูล
สถาปัตยกรรม S/360 กำหนดรูปแบบสำหรับอักขระ จำนวนเต็ม จำนวนเต็มทศนิยม และจำนวนทศนิยมฐานสิบหก คำสั่งสำหรับอักขระและจำนวนเต็มเป็นคำสั่งบังคับ แต่คำสั่งสำหรับทศนิยมและจำนวนทศนิยมเป็นส่วนหนึ่งของฟีเจอร์ การคำนวณเลขฐาน สิบและการคำนวณเลขทศนิยม
- อักขระจะถูกจัดเก็บในรูปแบบไบต์ 8 บิต
- จำนวนเต็มจะถูกจัดเก็บในรูปแบบเลขฐานสองแบบ Two's complement โดยอาจเป็นค่าครึ่งเวิร์ดหรือค่าเต็มเวิร์ด
- เลข ฐานสิบแบบแพ็คจะถูกจัดเก็บในรูปแบบไบต์ 8 บิต จำนวน 1 ถึง 16 ไบต์ โดยแต่ละไบต์ประกอบด้วยจำนวนหลักทศนิยมคี่ ตามด้วยเครื่องหมาย 4 บิต ค่าเครื่องหมายของเลขฐานสิบหก A, C, E และ F เป็นค่าบวก และค่าเครื่องหมายของเลขฐานสิบหก B และ D เป็นค่าลบ ค่าหลักของเลขฐานสิบหก AF และค่าเครื่องหมาย 0-9 ไม่ถูกต้อง แต่คำสั่ง PACK และ UNPK ไม่ได้ตรวจสอบความถูกต้อง
- เลข ฐานสิบแบบแบ่งโซนจะถูกจัดเก็บในรูปแบบไบต์ 8 บิต จำนวน 1 ถึง 16 ไบต์ โดยแต่ละไบต์ประกอบด้วยโซนในบิตที่ 0-3 และตัวเลขในบิตที่ 4-7 โซนของไบต์ขวาสุดจะถูกตีความว่าเป็นเครื่องหมาย
- ตัวเลข จุดลอยตัวจะถูกจัดเก็บเป็นค่าแบบเต็มเวิร์ดหรือดับเบิลเวิร์ดเฉพาะในรุ่นเก่าเท่านั้น ในรุ่น 360/85 [ 9 ]และ 360/195 [ 10 ]ยังมีตัวเลขจุดลอยตัวที่มีความแม่นยำสูงที่จัดเก็บเป็นควอดเวิร์ดอีกด้วย สำหรับทั้งสามรูปแบบ บิตที่ 0 คือเครื่องหมาย และบิตที่ 0-7 คือค่าลักษณะเฉพาะ (เลขชี้กำลัง ซึ่งมีค่าเบี่ยงเบนจาก 64) บิตที่ 8-31 (8-63) คือเศษส่วนเลขฐานสิบหก สำหรับความแม่นยำสูง ดับเบิลเวิร์ดลำดับต่ำจะมีเครื่องหมายและค่าลักษณะเฉพาะของตัวเอง ซึ่งจะถูกละเลยเมื่อป้อนข้อมูลและสร้างขึ้นเมื่อส่งออก
รูปแบบคำแนะนำ
คำสั่งใน S/360 มีความยาวสอง สี่ หรือหกไบต์ โดยมีรหัสการทำงาน (opcode) อยู่ในไบต์ที่ 0 คำสั่งมีรูปแบบใดรูปแบบหนึ่งดังต่อไปนี้:
- RR (สองไบต์) โดยทั่วไป ไบต์ที่ 1 จะระบุหมายเลขรีจิสเตอร์ 4 บิตสองหมายเลข แต่ในบางกรณี เช่น SVC ไบต์ที่ 1 จะเป็นฟิลด์ค่าคงที่ 8 บิตเพียงฟิลด์เดียว
- RS (สี่ไบต์) ไบต์ที่ 1 ระบุหมายเลขรีจิสเตอร์สองหมายเลข ไบต์ที่ 2-3 ระบุฐานและค่าการเลื่อน
- RX (สี่ไบต์) บิตที่ 0-3 ของไบต์ที่ 1 ระบุหมายเลขรีจิสเตอร์หรือตัวปรับแต่ง บิตที่ 4-7 ของไบต์ที่ 1 ระบุหมายเลขของรีจิสเตอร์ทั่วไปที่จะใช้เป็นดัชนี ไบต์ที่ 2-3 ระบุฐานและค่าชดเชย
- SI (สี่ไบต์) ไบต์ที่ 1 ระบุฟิลด์ค่าคงที่ทันที ไบต์ที่ 2-3 ระบุฐานและค่าการกระจัด
- SS (หกไบต์) ไบต์ที่ 1 ระบุฟิลด์ความยาว 4 บิตสองฟิลด์หรือฟิลด์ความยาว 8 บิตหนึ่งฟิลด์ ไบต์ที่ 2-3 และ 4-5 แต่ละไบต์ระบุฐานและค่าการเลื่อน การเข้ารหัสของฟิลด์ความยาวคือความยาวลบ 1
คำสั่งต้องอยู่ภายในขอบเขตสองไบต์ในหน่วยความจำ ดังนั้นบิตลำดับต่ำสุดของที่อยู่คำสั่งจึงเป็น 0 เสมอ
คำแสดงสถานะโปรแกรม (PSW)
คำสถานะโปรแกรม ( ) PSW[ 2 ] : 71–72 ประกอบด้วยการควบคุมที่หลากหลายสำหรับโปรแกรมที่กำลังทำงานอยู่ PSW 64 บิตอธิบาย (ในบรรดาสิ่งอื่นๆ) ที่อยู่ของคำสั่งปัจจุบันที่กำลังดำเนินการ รหัสเงื่อนไข และมาสก์การขัดจังหวะ
| บิต | สารบัญ | คำอธิบาย |
|---|---|---|
| 0-7 | หน้ากากระบบ | บิต 0-5: เปิดใช้งานช่องสัญญาณ 0-5 บิต 6: เปิดใช้งานช่องสัญญาณที่เหลือทั้งหมด[ c ]บิต 7: เปิดใช้งานการขัดจังหวะภายนอก (ตัวจับเวลา, ปุ่มขัดจังหวะ และสัญญาณภายนอก[ 13 ] |
| 8-11 | กุญแจป้องกัน | คีย์ป้องกัน CPU เพื่อเปรียบเทียบกับคีย์ป้องกันพื้นที่จัดเก็บข้อมูล |
| 12 | โหมด ASCII | เปิดใช้งานโหมด ASCII สำหรับคำสั่งเลขฐานสิบแบบแพ็ค ซึ่งไม่เคยใช้ในซอฟต์แวร์ของ IBM [ d ] |
| 13 | การตรวจสอบด้วยเครื่องจักร | เปิดใช้งานการขัดจังหวะการตรวจสอบเครื่องจักร |
| 14 | สถานะการรอคอย | หากโปรเซสเซอร์หยุดทำงาน การขัดจังหวะ (หากเปิดใช้งานไว้) จะทำให้โปรเซสเซอร์กลับมาประมวลผลคำสั่งต่อ |
| 15 | สถานะปัญหา | เปิดใช้งานเพื่อป้องกันการใช้คำสั่งที่สงวนไว้สำหรับสถานะผู้ควบคุม |
| 16-31 | รหัสขัดจังหวะ | รหัสเพื่อระบุประเภทของการขัดจังหวะที่แทรกเมื่อจัดเก็บ PSW ระหว่าง IPLoad นี่คือที่อยู่ของอุปกรณ์ที่โหลดโปรแกรม[ 14 ] |
| 32-33 | รหัสความยาวคำสั่ง | ความยาวเป็นครึ่งคำ หรือ 0 หากไม่มีข้อมูล |
| 34-35 | รหัสเงื่อนไข | โปรดดูคำแนะนำเฉพาะสำหรับการเข้ารหัส |
| 36-39 | หน้ากากโปรแกรม | บิต 36: เปิดใช้งานการล้นจุดคงที่, บิต 37: การล้นทศนิยม, บิต 38: การล้นเลขชี้กำลัง, บิต 39: ความสำคัญ[ 13 ] |
| 40-63 | คำแนะนำที่อยู่ | ที่อยู่ของคำสั่งถัดไป ยกเว้นการขัดจังหวะโปรแกรมด้วย ILC 0 |
คำสั่ง Load Program Status Word ( ) เป็น คำสั่งLPSWพิเศษที่ใช้โหลด Program Status Word (PSW) ซึ่งรวมถึงโหมดโปรแกรม คีย์ป้องกัน และที่อยู่ของคำสั่งถัดไปที่จะถูกประมวลผล LPSW มักใช้เพื่อกลับจากการขัดจังหวะโดยการโหลด PSW เก่าที่เกี่ยวข้องกับคลาสการขัดจังหวะ มีคำสั่งพิเศษหนึ่งคำสั่ง ( ) และคำสั่งที่ไม่มีสิทธิ์พิเศษหนึ่งคำสั่ง ( ) สำหรับจัดการส่วนย่อยของ PSW โดยไม่ทำให้เกิดการขัดจังหวะหรือโหลด PSW [ e ]SSMSPM
ระบบขัดจังหวะ
สถาปัตยกรรม[ 2 ] : 77–83 กำหนดการ ขัดจังหวะ 5 ประเภทการขัดจังหวะเป็นกลไกสำหรับการเปลี่ยนสถานะของโปรแกรมโดยอัตโนมัติ ใช้สำหรับทั้งเหตุการณ์ แบบซิงโครนัส [ f ]และแบบอะซิงโครนัส
| คลาสการขัดจังหวะ | PSW เก่า | PSW ใหม่ | ลำดับความสำคัญ | ||
|---|---|---|---|---|---|
| หกเหลี่ยม | ธันวาคม | หกเหลี่ยม | ธันวาคม | ||
| อินพุต/เอาต์พุต[ 15 ] | 38 | 56 | 78 | 120 | 4 |
| โปรแกรม[ 16 ] | 28 | 40 | 68 | 104 | 2 |
| หัวหน้างานเรียก[ 17 ] | 20 | 32 | 60 | 96 | 2 |
| ภายนอก[ 18 ] | 18 | 24 | 58 | 88 | 3 |
| การตรวจสอบเครื่องจักร[ 19 ] | 30 | 48 | 70 | 112 | 1 |
บนระบบ S/360 จะมีช่องเก็บข้อมูลสองช่องที่กำหนดไว้สำหรับแต่ละประเภทของการขัดจังหวะ ได้แก่ PSW แบบดับเบิลเวิร์ดเก่า และ PSW แบบดับเบิลเวิร์ดใหม่ โปรเซสเซอร์จะจัดเก็บ PSW ที่แทรกโค้ดการขัดจังหวะไว้ในตำแหน่ง PSW เก่า จากนั้นจึงโหลด PSW จากตำแหน่ง PSW ใหม่ โดยทั่วไปแล้ว การทำเช่นนี้จะแทนที่ที่อยู่คำสั่ง ทำให้เกิดการกระโดด และ (อาจมี) ตั้งค่าและ/หรือรีเซ็ตฟิลด์อื่นๆ ภายใน PSW ทำให้เกิดการเปลี่ยนโหมด
สถาปัตยกรรม S/360 กำหนดลำดับความสำคัญให้กับคลาสการขัดจังหวะแต่ละคลาส แต่จะมีผลก็ต่อเมื่อมีการขัดจังหวะสองครั้งเกิดขึ้นพร้อมกันเท่านั้น รูทีนการขัดจังหวะสามารถถูกขัดจังหวะโดยการขัดจังหวะอื่น ๆ ที่เปิดใช้งานอยู่ รวมถึงการขัดจังหวะเริ่มต้นที่เกิดขึ้นซ้ำอีกครั้ง ด้วยเหตุนี้ จึงเป็นเรื่องปกติที่จะระบุบิตมาสก์ทั้งหมด ยกเว้นบิตมาสก์ตรวจสอบเครื่อง ให้เป็น 0 สำหรับตัวจัดการการขัดจังหวะ "ระดับแรก" ตัวจัดการการขัดจังหวะ "ระดับที่สอง" โดยทั่วไปได้รับการออกแบบมาสำหรับการขัดจังหวะแบบซ้อนกัน (การขัดจังหวะหลายครั้งที่เกิดขึ้นในคลาสการขัดจังหวะเดียวกัน)
การขัดจังหวะการรับ/ส่งข้อมูล
การขัดจังหวะ I/O [ 15 ]เกิดขึ้นเมื่อโปรแกรมช่องสัญญาณเสร็จสิ้น หลังจากดึง CCW โดยตั้งค่าบิต PCI และยังรวมถึง เหตุการณ์แบบ อะซิงโครนัสที่ตรวจพบโดยอุปกรณ์ หน่วยควบคุม หรือช่องสัญญาณ เช่น การเสร็จสิ้นการเคลื่อนไหวเชิงกล ระบบจะจัดเก็บที่อยู่ของอุปกรณ์ลงในรหัสการขัดจังหวะ และจัดเก็บสถานะช่องสัญญาณลงในCSWที่ตำแหน่ง 64 ('40'X)
โปรแกรมหยุดชั่วคราว
การขัดจังหวะโปรแกรม[ 2 ] : 16, 79–80.1 เกิดขึ้นเมื่อคำสั่งพบข้อยกเว้นหนึ่ง[ g ]จาก 15 [ h ]ข้อยกเว้น อย่างไรก็ตาม หาก บิต Program Maskที่สอดคล้องกับข้อยกเว้นเป็น 0 จะไม่มีการขัดจังหวะสำหรับข้อยกเว้นนั้น บน 360/65, [ 21 ] : 12 360/67 [ 11 ] : 46 และ 360/85 [ 9 ] : 12 การขัดจังหวะข้อยกเว้นการป้องกันและข้อยกเว้นการกำหนดที่อยู่สามารถไม่แม่นยำ ในกรณีนี้จะเก็บรหัสความยาวคำสั่งเป็น 0 รหัสการขัดจังหวะอาจเป็นรหัสใดก็ได้ของ
| บิต หกเหลี่ยม26-31 | ธันวาคม | ข้อยกเว้น | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | การขัดจังหวะที่ไม่แม่นยำ[ g ]บน 360/91, [ 20 ] : 15 360/95 หรือ 360/195 [ 10 ] : 14
| ||||||||||||||||||||||||||
| 1 | 1 | การดำเนินการ[ 22 ] | ||||||||||||||||||||||||||
| 2 | 2 | การดำเนินการพิเศษ[ 22 ] | ||||||||||||||||||||||||||
| 3 | 3 | ดำเนินการ[ 22 ] | ||||||||||||||||||||||||||
| 4 | 4 | การป้องกัน[ 22 ] | ||||||||||||||||||||||||||
| 5 | 5 | การแก้ไข[ 23 ] | ||||||||||||||||||||||||||
| 6 | 6 | ข้อกำหนด[ 24 ] | ||||||||||||||||||||||||||
| 7 | 7 | ข้อมูล[ 24 ] | ||||||||||||||||||||||||||
| 8 | 8 | การล้นจุดคงที่[ 24 ] | ||||||||||||||||||||||||||
| 9 | 9 | การหารจุดคงที่[ 24 ] | ||||||||||||||||||||||||||
| เอ | 10 | การล้นของเลขฐานสิบ[ 24 ] | ||||||||||||||||||||||||||
| บี | 11 | การหารทศนิยม[ 24 ] | ||||||||||||||||||||||||||
| ซี | 12 | เลขชี้กำลังล้น[ 24 ] | ||||||||||||||||||||||||||
| ดี | 13 | เลขชี้กำลังต่ำกว่าค่าที่กำหนด[ 24 ] | ||||||||||||||||||||||||||
| อี | 14 | ความสำคัญ[ 24 ] | ||||||||||||||||||||||||||
| เอฟ | 15 | การหารจุดลอยตัว[ 25 ] | ||||||||||||||||||||||||||
| 10 | 16 | |||||||||||||||||||||||||||
| 11 | 17 | |||||||||||||||||||||||||||
| 12 | 18 |
- ข้อยกเว้นการดำเนินการ[ 22 ]จะถูกตรวจพบเมื่อโปรแกรมพยายามดำเนินการคำสั่งที่มีรหัสการทำงานที่คอมพิวเตอร์ไม่ได้นำไปใช้ โดยเฉพาะอย่างยิ่ง ข้อยกเว้นการดำเนินการจะถูกตรวจพบเมื่อโปรแกรมถูกเขียนขึ้นสำหรับคุณสมบัติเสริม เช่น จุดลอยตัว ซึ่งไม่ได้ติดตั้งไว้
- ข้อยกเว้นการดำเนินการที่มีสิทธิ์[ 22 ]จะถูกรับรู้เมื่อโปรแกรมพยายามดำเนินการคำสั่งที่มีสิทธิ์เมื่อบิตสถานะปัญหาใน PSW เป็น 1
- ข้อยกเว้นการดำเนินการ[ 22 ]จะถูกรับรู้เมื่อตัวดำเนินการของคำสั่ง EXECUTE (EX)เป็นคำสั่ง EXECUTE อื่น
- ข้อยกเว้นการป้องกัน[ 22 ]จะถูกรับรู้เมื่อโปรแกรมพยายามจัดเก็บในตำแหน่งที่มีคีย์ป้องกันการจัดเก็บที่ไม่ตรงกับ คีย์ PSW [ k ]หรือดึงข้อมูลจากตำแหน่งที่ได้รับการป้องกันการดึงข้อมูลซึ่งมีคีย์ป้องกันการจัดเก็บที่ไม่ตรงกับคีย์ PSW
- ข้อยกเว้นที่อยู่[ 23 ]จะถูกรับรู้เมื่อโปรแกรมพยายามเข้าถึงตำแหน่งจัดเก็บข้อมูลที่ไม่พร้อมใช้งานในขณะนี้ โดยปกติจะเกิดขึ้นกับที่อยู่เกินความจุของเครื่อง แต่ก็อาจเกิดขึ้นกับเครื่องที่อนุญาตให้บล็อกจัดเก็บข้อมูลถูกปิดใช้งานได้เช่นกัน
- ข้อยกเว้นข้อกำหนด[ 24 ]ได้รับการยอมรับเมื่อคำสั่งมีความยาวหรือฟิลด์รีจิสเตอร์ที่มีค่าที่ไม่ได้รับอนุญาตจากการดำเนินการ หรือเมื่อมีที่อยู่ตัวถูกดำเนินการที่ไม่ตรงตามข้อกำหนดการจัดเรียงของรหัสปฏิบัติการ เช่น คำสั่ง LH ที่มีที่อยู่ตัวถูกดำเนินการคี่บนเครื่องที่ไม่มีคุณสมบัติการจัดเรียงไบต์
- ข้อยกเว้นข้อมูล[ 24 ]จะถูกรับรู้เมื่อคำสั่งทศนิยมระบุตัวถูกดำเนินการที่ไม่ถูกต้อง เช่น ข้อมูลที่ไม่ถูกต้อง การทับซ้อนที่ไม่ถูกต้อง
- ข้อยกเว้นการล้นจุดคงที่[ 24 ]จะถูกรับรู้เมื่อบิตสำคัญสูญหายในการคำนวณเลขคณิตจุดคงที่หรือคำสั่งเลื่อน นอกเหนือจากการหาร
- ข้อยกเว้นการหารจุดคงที่[ 24 ]จะถูกรับรู้เมื่อบิตสำคัญสูญหายในการหารจุดคงที่หรือคำสั่งแปลงเป็นไบนารี
- ข้อยกเว้นการล้นทศนิยม[ 24 ]จะถูกรับรู้เมื่อตัวเลขสำคัญหายไปในคำสั่งคำนวณเลขฐานสิบ นอกเหนือจากการหาร
- ข้อยกเว้นการหารทศนิยม[ 24 ]จะถูกรับรู้เมื่อบิตสำคัญหายไปในคำสั่งหารทศนิยม ปลายทางจะไม่เปลี่ยนแปลง
- ข้อยกเว้นการล้นเลขชี้กำลัง[ 24 ]จะถูกรับรู้เมื่อลักษณะเฉพาะในการดำเนินการเลขคณิตจุดลอยตัวเกิน 127 และเศษส่วนไม่ใช่ศูนย์
- ข้อยกเว้นเลขชี้กำลังต่ำกว่าค่าที่กำหนด[ 24 ]จะถูกรับรู้เมื่อลักษณะเฉพาะในการดำเนินการเลขคณิตจุดลอยตัวเป็นค่าลบและเศษส่วนไม่ใช่ศูนย์
- ข้อยกเว้นที่สำคัญ[ 24 ]ได้รับการยอมรับเมื่อเศษส่วนในการดำเนินการบวกหรือลบจุดลอยตัวเป็นศูนย์
- ข้อยกเว้นการหารจุดลอยตัว[ 25 ]จะถูกรับรู้เมื่อเศษส่วนในตัวหารของการดำเนินการหารจุดลอยตัวเป็นศูนย์
รหัส ABENDของ OS/360 สำหรับข้อผิดพลาดของฮาร์ดแวร์คือ 'S0Cx' โดยที่ 'x' คือค่าเลขฐานสิบหกของรหัสข้างต้น ตัวอย่างเช่น Abend S0C7 คือข้อผิดพลาดที่เกิดจากข้อผิดพลาดของข้อมูล
หัวหน้างานถูกขัดจังหวะการโทร
การขัดจังหวะการเรียกผู้ดูแล[ 17 ]เกิดขึ้นอันเป็นผลมาจากคำสั่งเรียกผู้ดูแลระบบจะจัดเก็บบิตที่ 8-15 ของคำสั่ง SVC เป็นรหัสการขัดจังหวะ
การขัดจังหวะจากภายนอก
การขัดจังหวะ ภายนอก[ 26 ] [ l ]เกิดขึ้นอันเป็นผลมาจากเหตุการณ์อะซิงโครนัสบางอย่าง บิต 16-24 ของ PSW เก่าภายนอกถูกตั้งค่าเป็น 0 และบิต 24-31 อย่างน้อยหนึ่งบิตถูกตั้งค่าเป็น 1
| บิต PSW | ประเภทของการรบกวนจากภายนอก |
|---|---|
24 | ตัวจับเวลา |
25 | ปุ่มขัดจังหวะ |
26 | สัญญาณภายนอก 2 การแจ้งเตือนการทำงานผิดปกติบน 360/65 [ 21 ]ในโหมดมัลติซิสเต็ม |
27 | สัญญาณภายนอก 3 การเรียกใช้ระบบบน 360/65 [ 21 ]ในโหมดมัลติซิสเต็ม |
28 | สัญญาณภายนอก 4 |
29 | สัญญาณภายนอก 5 |
30 | สัญญาณภายนอก 6 |
31 | สัญญาณภายนอก 7 |
การขัดจังหวะการตรวจสอบเครื่องจักร
การขัดจังหวะ Machine Check [ 19 ]เกิดขึ้นเพื่อรายงานสภาวะผิดปกติที่เกี่ยวข้องกับช่องสัญญาณหรือ CPU ที่ไม่สามารถรายงานได้ด้วยการขัดจังหวะประเภทอื่น สภาวะที่สำคัญที่สุดที่ทำให้เกิด Machine Check คือข้อผิดพลาดของฮาร์ดแวร์ เช่น ข้อผิดพลาดพาริตีที่พบในรีจิสเตอร์หรือหน่วยเก็บข้อมูล แต่บางรุ่นอาจใช้เพื่อรายงานสภาวะที่ไม่ร้ายแรงนัก ทั้งรหัสการขัดจังหวะและข้อมูลที่จัดเก็บในพื้นที่สแกนเอาต์ที่ '80'x (128 เลขฐานสิบ) ขึ้นอยู่กับรุ่น
อินพุต/เอาต์พุต
บทความนี้อธิบาย I/O จากมุมมองของ CPU ไม่ได้กล่าวถึงสายเคเบิลช่องสัญญาณหรือตัวเชื่อมต่อ ซึ่งมี บทความแยก ต่างหาก มีบทสรุปอยู่ที่อื่นและรายละเอียดสามารถพบได้ในเอกสารของ IBM [ 3 ]และใน FIPS PUB 60-2 [ 27 ]
การรับส่งข้อมูล (I/O) ดำเนินการโดยหน่วยประมวลผลที่แยกจากกันในเชิงแนวคิด เรียกว่า ช่องสัญญาณ (channel) ช่องสัญญาณมีชุดคำสั่งของตนเอง และเข้าถึงหน่วยความจำโดยอิสระจากโปรแกรมที่ทำงานบน CPU ในรุ่นขนาดเล็ก (ตั้งแต่360/50 ขึ้นไป ) เอ็นจิ้นไมโครโค้ดตัวเดียวจะทำงานทั้งโปรแกรม CPU และโปรแกรมช่องสัญญาณ ในรุ่นขนาดใหญ่ ช่องสัญญาณจะอยู่ในตู้แยกต่างหากและมีอินเทอร์เฟซของตนเองสำหรับการเข้าถึงหน่วยความจำ ช่องสัญญาณอาจมี ช่อง สัญญาณ ย่อยหลายช่อง แต่ละช่องสัญญาณย่อยจะมีสถานะของโปรแกรมช่องสัญญาณแต่ละรายการ ช่องสัญญาณย่อยที่เชื่อมโยงกับอุปกรณ์หลายตัวที่ไม่สามารถมีโปรแกรมช่องสัญญาณพร้อมกันได้เรียกว่า ช่องสัญญาณย่อยที่ใช้ร่วมกัน (shared ) ส่วนช่องสัญญาณย่อยที่แสดงถึงอุปกรณ์เพียงตัวเดียวเรียกว่า ช่องสัญญาณย่อย ที่ไม่ได้ใช้ร่วม กัน (unshared )
ใน S/360 มีช่องสัญญาณอยู่สามประเภท:
- ช่องสัญญาณมัลติเพล็กเซอร์แบบไบต์สามารถประมวลผลCCW หลายตัว พร้อมกันได้ โดยปกติจะใช้สำหรับเชื่อมต่ออุปกรณ์ที่ทำงานช้า เช่น เครื่องอ่านการ์ดและสายโทรคมนาคม ช่องสัญญาณมัลติเพล็กเซอร์แบบไบต์อาจมีช่องสัญญาณย่อยแบบตัวเลือกหลายช่อง โดยแต่ละช่องมีเพียงช่องสัญญาณย่อยเดียว ซึ่งทำงานเหมือนช่องสัญญาณตัวเลือกความเร็วต่ำ
- ช่องเลือกสัญญาณ (selector channel)มีเพียงช่องย่อยเดียว ดังนั้นจึงสามารถประมวลผลคำสั่งช่องสัญญาณได้ครั้งละหนึ่งคำสั่งเท่านั้น โดยปกติจะใช้สำหรับเชื่อมต่ออุปกรณ์ความเร็วสูงที่ไม่สามารถใช้ช่องมัลติเพล็กเซอร์แบบบล็อกเพื่อระงับการเชื่อมต่อได้ เช่น ไดรฟ์เทปแม่เหล็ก
- ช่องมัลติเพล็กเซอร์แบบบล็อกสามารถเรียกใช้โปรแกรมหลายช่องพร้อมกันได้ แต่จะมีเพียงโปรแกรมเดียวที่ใช้งานได้ในเวลาเดียวกัน หน่วยควบคุมสามารถขอระงับการทำงานเมื่อสิ้นสุดคำสั่งช่องสัญญาณ และสามารถขอให้ดำเนินการต่อในภายหลังได้ คุณสมบัตินี้มีไว้สำหรับอุปกรณ์ที่มีความล่าช้าทางกลไกหลังจากการถ่ายโอนข้อมูลเสร็จสิ้น เช่น การค้นหาข้อมูลบน DASD แบบหัวอ่านเคลื่อนที่ ช่องมัลติเพล็กเซอร์แบบบล็อกถูกเพิ่มเข้ามาในภายหลังในสถาปัตยกรรม System/360 เครื่องรุ่นแรกๆ มีเพียงช่องมัลติเพล็กเซอร์แบบไบต์และช่องตัวเลือกเท่านั้น ช่องมัลติเพล็กเซอร์แบบบล็อกเป็นคุณสมบัติเสริมเฉพาะในรุ่น 85 และ 195 เท่านั้น ช่องมัลติเพล็กเซอร์แบบบล็อกยังมีให้ใช้งานในคอมพิวเตอร์System/370 รุ่นหลังๆ ด้วย
ตามหลักการแล้ว อุปกรณ์ต่อพ่วงจะเชื่อมต่อกับ S/360 ผ่านหน่วยควบคุมซึ่งเชื่อมต่อผ่านช่องสัญญาณอีกทีหนึ่ง อย่างไรก็ตาม สถาปัตยกรรมนี้ไม่ได้กำหนดให้หน่วยควบคุมต้องแยกออกจากกันทางกายภาพ และในทางปฏิบัติบางครั้งหน่วยควบคุมก็ถูกรวมเข้ากับอุปกรณ์ที่ควบคุมอยู่ ในทำนองเดียวกัน สถาปัตยกรรมนี้ไม่ได้กำหนดให้ช่องสัญญาณต้องแยกออกจากโปรเซสเซอร์ทางกายภาพ และ S/360 รุ่นเล็ก (ตั้งแต่ 360 ถึง 360/50) มีช่องสัญญาณแบบรวมที่ดึงรอบการทำงานจากโปรเซสเซอร์
อุปกรณ์ต่อพ่วงจะถูกระบุด้วย ที่อยู่16 บิต[ m ] [ 2 ] : 89 เรียกว่าcuaหรือcuuบทความนี้จะใช้คำว่าcuuบิต 8 บิตบนสุดระบุช่องสัญญาณ ซึ่งมีหมายเลขตั้งแต่ 0 ถึง 6 [ c ]ในขณะที่บิต 8 บิตล่างระบุอุปกรณ์บนช่องสัญญาณนั้น อุปกรณ์หนึ่งอาจมีที่อยู่ cuu หลายรายการ
หน่วยควบคุมจะได้รับการกำหนดช่วงที่อยู่ "การจับยึด" ตัวอย่างเช่น หน่วยควบคุมอาจได้รับการกำหนดช่วง 20-2F หรือ 40-7F จุดประสงค์ของเรื่องนี้คือเพื่อช่วยในการเชื่อมต่อและจัดลำดับความสำคัญของหน่วยควบคุมหลายหน่วยเข้ากับช่องสัญญาณ ตัวอย่างเช่น ช่องสัญญาณอาจมีหน่วยควบคุมดิสก์สามหน่วยที่ 20-2F, 50-5F และ 80-8F ที่อยู่ทั้งหมดที่จับยึดได้ไม่จำเป็นต้องมีอุปกรณ์ทางกายภาพที่กำหนดไว้ หน่วยควบคุมแต่ละหน่วยจะถูกทำเครื่องหมายว่าเป็นลำดับความสำคัญสูงหรือต่ำในช่องสัญญาณด้วย
การเลือกอุปกรณ์จะดำเนินการจากช่องสัญญาณไปยังแต่ละหน่วยควบคุมตามลำดับที่เชื่อมต่อกับช่องสัญญาณนั้นๆ เมื่อถึงปลายสุดของห่วงโซ่ กระบวนการเลือกจะดำเนินต่อไปในทิศทางย้อนกลับไปยังช่องสัญญาณ หากการเลือกกลับไปยังช่องสัญญาณ แสดงว่าไม่มีหน่วยควบคุมใดรับคำสั่ง และ SIO จะส่งคืนรหัสเงื่อนไข 3 หน่วยควบคุมที่ถูกกำหนดให้มีลำดับความสำคัญสูงจะตรวจสอบ CUU ขาออกว่าอยู่ในระยะของตนหรือไม่ หากใช่ การประมวลผล I/O จะเกิดขึ้น หากไม่ใช่ การเลือกจะถูกส่งต่อไปยัง CU ขาออกถัดไป หน่วยควบคุมที่ถูกกำหนดให้มีลำดับความสำคัญต่ำจะตรวจสอบ CUU ขาเข้า (ที่ส่งกลับ) ว่าอยู่ในระยะของตนหรือไม่ หากใช่ การประมวลผล I/O จะเกิดขึ้น หากไม่ใช่ การเลือกจะถูกส่งต่อไปยัง CU ขาเข้าถัดไป (หรือช่องสัญญาณ) การเชื่อมต่อของหน่วยควบคุมสามหน่วยกับช่องสัญญาณอาจเป็นแบบ ABC และหากทั้งหมดถูกกำหนดให้มีลำดับความสำคัญสูง ลำดับความสำคัญจะเป็น ABC หากทั้งหมดถูกกำหนดให้มีลำดับความสำคัญต่ำ ลำดับความสำคัญจะเป็น CBA หาก B ถูกกำหนดให้มีลำดับความสำคัญสูงและ AC ถูกกำหนดให้มีลำดับความสำคัญต่ำ ลำดับจะเป็น BCA หากขยายแนวคิดนี้ต่อไป ตัวควบคุมตัวแรกจากทั้งหมด N ตัวจะมีลำดับความสำคัญ 1 (สูง) หรือ 2N-1 (ต่ำ) ตัวที่สองมีลำดับความสำคัญ 2 หรือ 2N-2 ตัวที่สามมีลำดับความสำคัญ 3 หรือ 2N-3 เป็นต้น และตัวควบคุมตัวสุดท้ายที่เชื่อมต่อทางกายภาพจะมีลำดับความสำคัญ N เสมอ
มีพื้นที่จัดเก็บข้อมูลสามส่วนที่สงวนไว้สำหรับการรับส่งข้อมูล (I/O) ได้แก่ PSW เก่าแบบดับเบิลเวิร์ดสำหรับ I/O, PSW ใหม่แบบดับเบิลเวิร์ดสำหรับ I/O และChannel Address Word ( CAW ) แบบเต็มเวิร์ด การดำเนินการ I/O โดยปกติแล้วต้องใช้สิ่งต่อไปนี้:
- เริ่มต้นใช้งานCAWด้วยคีย์จัดเก็บข้อมูลและที่อยู่ของ CCW ตัวแรก
- ออก คำสั่ง Start I/O ( SIO ) ที่ระบุcuuสำหรับการดำเนินการ
- รอ[ n ]การขัดจังหวะ I/O
- จัดการกับสภาวะผิดปกติใดๆ ที่ระบุไว้ในคำสถานะช่องสัญญาณ ( CSW )
โปรแกรมช่องสัญญาณประกอบด้วยลำดับของคำสั่งควบคุมช่องสัญญาณ ( CCW ) ที่เชื่อมต่อกัน (ดูด้านล่าง) โดยปกติช่องสัญญาณจะดึงCCWจากคำคู่ที่ต่อเนื่องกัน แต่หน่วยควบคุมสามารถสั่งให้ช่องสัญญาณข้าม CCW ได้ และCCW แบบ Transfer In Channel ( TIC ) สามารถสั่งให้ช่องสัญญาณเริ่มดึงCCWจากตำแหน่งใหม่ได้
มีวิธีการที่กำหนดไว้หลายวิธีสำหรับการดำเนินการคำสั่งของช่องสัญญาณ บางวิธีอนุญาตให้ช่องสัญญาณดำเนินการดึงข้อมูล CCW ต่อไป ในขณะที่บางวิธีจะยุติโปรแกรมของช่องสัญญาณ โดยทั่วไป หาก CCW ไม่มีบิตคำสั่งแบบต่อเนื่องและไม่ใช่ TIC ช่องสัญญาณจะยุติการทำงานของ I/O และทำให้เกิดการขัดจังหวะ I/O เมื่อคำสั่งเสร็จสมบูรณ์ บิตสถานะบางอย่างจากหน่วยควบคุมจะระงับการเชื่อมต่อแบบต่อเนื่อง
วิธีที่พบบ่อยที่สุดสำหรับการดำเนินการคำสั่งให้เสร็จสมบูรณ์คือ เมื่อจำนวนครั้งหมดลงเมื่อไม่ได้ตั้งค่า chain-data และหน่วยควบคุมส่งสัญญาณว่าไม่ควรทำการถ่ายโอนข้อมูลเพิ่มเติมอีกต่อไป หากไม่ได้ตั้งค่า Suppress-Length-Indication (SLI) และเกิดเหตุการณ์ใดเหตุการณ์หนึ่งโดยไม่เกิดอีกเหตุการณ์หนึ่ง การเชื่อมต่อคำสั่งจะไม่ได้รับอนุญาต สถานการณ์ที่พบบ่อยที่สุดที่ระงับการเชื่อมต่อคำสั่งคือ unit-exception และ unit-check อย่างไรก็ตาม การรวมกันของ unit-check และ status-modifier ไม่ได้ระงับการเชื่อมต่อคำสั่ง แต่จะทำให้ช่องสัญญาณทำการลองส่งคำสั่งซ้ำ โดยประมวลผล CCW เดิมอีกครั้ง
นอกเหนือจากสัญญาณขัดจังหวะที่ส่งไปยัง CPU เมื่อการดำเนินการ I/O เสร็จสมบูรณ์แล้ว ช่องสัญญาณยังสามารถส่งสัญญาณขัดจังหวะที่ควบคุมโดยโปรแกรม (PCI) ไปยัง CPU ในขณะที่โปรแกรมของช่องสัญญาณกำลังทำงานอยู่ โดยไม่ยุติการดำเนินการ และยังสามารถส่งสัญญาณขัดจังหวะเมื่อสิ้นสุดการทำงานของอุปกรณ์แบบหน่วงเวลาหลังจากสัญญาณขัดจังหวะการเสร็จสิ้น I/O ได้อีกด้วย
สถานะช่องสัญญาณ
เงื่อนไขเหล่านี้จะถูก ตรวจพบโดยช่องสัญญาณและระบุไว้ในCSW [ 28 ]
- การขัดจังหวะที่ควบคุมโดยโปรแกรม[ 29 ]บ่งชี้ว่าช่องสัญญาณได้ดึง CCW โดยตั้งค่าบิต PCI ช่องสัญญาณจะดำเนินการประมวลผลต่อไป การขัดจังหวะนี้เพียงแค่แจ้งให้ CPU ทราบถึงความคืบหน้าของช่องสัญญาณ ตัวอย่างของการใช้การขัดจังหวะที่ควบคุมโดยโปรแกรมคือในฟังก์ชัน "การดึงโปรแกรม" ของการกำกับดูแลเนื้อหา ซึ่งโปรแกรมควบคุมจะได้รับแจ้งว่าได้อ่านเรคอร์ดควบคุม/การย้ายตำแหน่งแล้ว เพื่อให้แน่ใจว่าเรคอร์ดนี้ถูกอ่านลงในหน่วยความจำหลักอย่างสมบูรณ์ จะมีการเริ่ม "การหมุนบิตที่ปิดใช้งาน" ซึ่งเป็นหนึ่งในไม่กี่อย่างที่ยังคงอยู่ในโปรแกรมควบคุม ความพึงพอใจของการหมุนบ่งชี้ว่าเรคอร์ดควบคุม/การย้ายตำแหน่งอยู่ในหน่วยความจำหลักอย่างสมบูรณ์ และเรคอร์ดข้อความก่อนหน้าทันทีอาจถูกย้ายตำแหน่ง หลังจากย้ายตำแหน่งแล้ว NOP CCW จะเปลี่ยนเป็น TIC และโปรแกรมช่องสัญญาณจะดำเนินการต่อ ด้วยวิธีนี้ โมดูลโหลดทั้งหมดอาจถูกอ่านและย้ายตำแหน่งโดยใช้ EXCP เพียงตัวเดียว และอาจหมุนไดรฟ์ดิสก์เพียงรอบเดียว PCI ยังมีแอปพลิเคชันในการจัดการบัฟเฟอร์วิธีการเข้าถึงการประมวลผลทางไกลด้วย
- ความยาวไม่ถูกต้อง[ 30 ]บ่งชี้ว่าการถ่ายโอนข้อมูลสำหรับคำสั่งเสร็จสมบูรณ์ก่อนที่จำนวนจะหมดลง การบ่งชี้นี้จะถูกระงับหาก บิต Suppress-Length-Indicationใน CCW ถูกตั้งค่า
- การตรวจสอบโปรแกรม[ 30 ]ระบุข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้
- บิตที่ไม่ใช่ศูนย์ในตำแหน่งที่ต้องการศูนย์
- ข้อมูลไม่ถูกต้องหรือที่อยู่ CCW ไม่ถูกต้อง
- CAW หรือ TIC หมายถึง TIC
- การตรวจสอบการป้องกัน[ 31 ]ระบุว่าคีย์การป้องกันใน CAW ไม่เป็นศูนย์และไม่ตรงกับคีย์การป้องกันการจัดเก็บ
- การตรวจสอบข้อมูลช่องสัญญาณ[ 32 ]บ่งชี้ว่ามีข้อผิดพลาดพาริตี้ระหว่างการถ่ายโอนข้อมูล
- การตรวจสอบการควบคุมช่องสัญญาณ[ 32 ]บ่งชี้ถึงความผิดปกติของช่องสัญญาณอื่นนอกเหนือจากการตรวจสอบข้อมูลช่องสัญญาณหรือการตรวจสอบการควบคุมอินเทอร์เฟซ
- การตรวจสอบการควบคุมอินเทอร์เฟซ[ 32 ]บ่งชี้ว่ามีสัญญาณที่ไม่ถูกต้องในช่องเพื่อควบคุมอินเทอร์เฟซของหน่วย
- การตรวจสอบการเชื่อมโยง[ 32 ]บ่งชี้ว่าข้อมูลสูญหายระหว่างการเชื่อมโยงข้อมูล
สถานะหน่วย
เงื่อนไขเหล่านี้จะถูกส่งไปยังช่องสัญญาณโดยหน่วยควบคุมหรืออุปกรณ์[ 33 ]ในบางกรณี ช่องสัญญาณจะจัดการเงื่อนไขเหล่านี้ และในบางกรณี เงื่อนไขเหล่านี้จะถูกระบุไว้ในCSWไม่มีการแยกแยะระหว่างเงื่อนไขที่ตรวจพบโดยหน่วยควบคุมและเงื่อนไขที่ตรวจพบโดยอุปกรณ์
- ความสนใจ[ 34 ]บ่งชี้ถึงสภาวะผิดปกติที่ไม่เกี่ยวข้องกับโปรแกรมช่องสัญญาณที่กำลังดำเนินอยู่ มักจะบ่งชี้ถึงการกระทำของผู้ปฏิบัติงานบางอย่าง เช่น การขอข้อมูลเข้า ซึ่งในกรณีนี้ CPU จะตอบสนองโดยการออกคำสั่งประเภทอ่าน โดยส่วนใหญ่จะเป็นคำสั่ง sense (04h) ซึ่งสามารถอนุมานข้อมูลเพิ่มเติมได้ ความสนใจเป็นสภาวะพิเศษ และต้องการการสนับสนุนระบบปฏิบัติการเฉพาะ และระบบปฏิบัติการจะมีตารางความสนใจพิเศษ [ o ]ที่มีจำนวนรายการจำกัด
- ตัวแก้ไขสถานะ[ 35 ] (SM) บ่งชี้ถึงเงื่อนไขที่ผิดปกติหนึ่งในสามประการ
- มีการออกคำสั่งทดสอบการรับส่งข้อมูล (Test I/O instruction) ไปยังอุปกรณ์ที่ไม่รองรับคำสั่งดังกล่าว
- สถานะ " ไม่ว่าง"หมายถึงหน่วยควบคุม ไม่ใช่ตัวอุปกรณ์
- อุปกรณ์ตรวจพบสภาวะที่ต้องข้าม CCW โดยปกติแล้ว CCW ที่มีคำสั่งซึ่งสามารถใช้ Status Modifier ได้ จะระบุการเชื่อมโยงคำสั่ง ซึ่งในกรณีนี้ SM จะถูกประมวลผลโดยช่องสัญญาณและไม่ทำให้เกิดการขัดจังหวะ
- รายการช่องทั่วไปที่เกิด SM ขึ้นคือ
... ค้นหารหัสเท่ากับ TIC *-8 อ่านข้อมูล
- โดยที่ TIC จะทำให้ช่องสัญญาณดึงข้อมูลการค้นหาใหม่จนกว่าอุปกรณ์จะระบุว่าการค้นหาสำเร็จโดยการยกสัญญาณ SM ขึ้น
- สิ้นสุดหน่วยควบคุม[ 36 ]บ่งชี้ว่าสถานะการทำงานไม่ว่างของหน่วยควบคุมก่อนหน้านี้ได้รับการล้างแล้ว
- Busy [ 37 ]บ่งชี้ว่าอุปกรณ์ ( SM =0) หรือหน่วยควบคุม ( SM =1) กำลังยุ่งอยู่
- สิ้นสุดช่องสัญญาณ[ 38 ]บ่งชี้ว่าอุปกรณ์ได้ทำการถ่ายโอนข้อมูลสำหรับคำสั่งช่องสัญญาณเสร็จสิ้นแล้ว นอกจากนี้ อาจมี การระบุ ความยาวที่ไม่ถูกต้องหากฟิลด์ Count ของ CCW หมดลง ขึ้นอยู่กับค่าของบิต Suppress-Length-Indication
- การสิ้นสุดของอุปกรณ์[ 38 ]บ่งชี้ว่าอุปกรณ์ได้ดำเนินการเสร็จสิ้นแล้วและพร้อมที่จะรับการดำเนินการอื่น DE อาจถูกส่งสัญญาณพร้อมกันกับ CEหรืออาจล่าช้า
- การตรวจสอบหน่วย[ 39 ]บ่งชี้ว่าอุปกรณ์หรือหน่วยควบคุมตรวจพบสภาวะผิดปกติ และสามารถรับรายละเอียดได้โดยการออกคำสั่ง Sense
- ข้อยกเว้นหน่วย[ 40 ]บ่งชี้ว่าอุปกรณ์ตรวจพบเงื่อนไขที่ผิดปกติ เช่น สิ้นสุดไฟล์
คำที่อยู่ช่องสัญญาณ
คำ เต็มChannel Address Word [ 2 ] : 99 (CAW) ประกอบด้วยคีย์ป้องกันการจัดเก็บ 4 บิตและที่อยู่ 24 บิตของโปรแกรมช่องสัญญาณที่จะเริ่มต้น
คำสั่งช่องสัญญาณ
คำสั่งช่องสัญญาณ (Channel Command Word)คือคำสองคำที่ประกอบด้วยสิ่งต่อไปนี้:
- รหัสคำสั่งช่อง 8 บิต[ 41 ]
- ที่อยู่ 24 บิต[ 42 ]
- ฟิลด์แฟล็ก 5 บิต[ 43 ]
- ฟิลด์ Count halfword ที่ไม่มีเครื่องหมาย[ 42 ]
รหัสคำสั่ง CCW
บิตลำดับต่ำ 2 หรือ 4 บิตจะกำหนดการดำเนินการหกประเภทที่ช่องสัญญาณดำเนินการ[ 2 ] : 100, 105 การเข้ารหัสคือ
| บิต | สั่งการ |
|---|---|
| **** 0000 | ไม่ถูกต้องในทิศทางทวนเข็มนาฬิกา ซึ่งจำลองโดยคำสั่ง Test I/O (TIO) ของโปรเซสเซอร์ |
| MMMM 0100 | ความหมาย[ 44 ] |
| **** 1000 | การถ่ายโอนในช่องสัญญาณ (TIC) [ 45 ] |
| MMMM 1100 | อ่านย้อนกลับ[ 46 ] |
| MMMM MM01 | เขียน[ 47 ] |
| MMMM MM10 | อ่าน[ 47 ] |
| MMMM MM11 | การควบคุม[ 44 ] |
ความหมายของบิตลำดับสูงหกหรือสี่บิต ซึ่งเป็นบิตตัวปรับแต่ง ( M)ในตารางด้านบน ขึ้นอยู่กับประเภทของอุปกรณ์อินพุต/เอาต์พุตที่เชื่อมต่อ เช่นDASD , CKD, CCW บิตทั้งแปดบิตจะถูกส่งไปยังและตีความในหน่วยควบคุมที่เกี่ยวข้อง (หรืออุปกรณ์ที่มีฟังก์ชันเทียบเท่า)
การควบคุมใช้เพื่อทำให้เกิดการเปลี่ยนแปลงสถานะในอุปกรณ์หรือหน่วยควบคุม ซึ่งมักเกี่ยวข้องกับการเคลื่อนไหวทางกล เช่น การกรอถอยหลัง การค้นหาตำแหน่ง
คำสั่ง Sense ใช้สำหรับอ่านข้อมูลที่อธิบายสถานะของอุปกรณ์ กรณีที่สำคัญที่สุดคือ เมื่อคำสั่งสิ้นสุดลงด้วยการตรวจสอบหน่วย สาเหตุที่แท้จริงจะสามารถระบุได้ก็ต่อเมื่อทำการคำสั่ง Sense และตรวจสอบข้อมูลที่ส่งกลับมาเท่านั้น คำสั่ง Sense ที่มีบิตตัวดัดแปลงเป็นศูนย์ทั้งหมดจะถือว่าถูกต้องเสมอ
ความแตกต่างที่น่าสนใจจากสถาปัตยกรรมดั้งเดิมคือ DASD ใช้รหัสคำสั่ง Sense สำหรับการสำรองและการปล่อย แทนที่จะใช้รหัสคำสั่ง Control
ธง CCW
ค่าแฟล็กในคำสั่ง CCW จะส่งผลต่อวิธีการทำงานและการยุติการทำงานของคำสั่งนั้น
| นิดหน่อย | ธง | ผล | |
|---|---|---|---|
| 32 | ซีดี | ข้อมูลลูกโซ่ | ดำเนินการต่อไปโดยใช้พื้นที่จัดเก็บที่กำหนดโดย CCW ถัดไป[ 48 ] |
| 33 | ซีซี | ลำดับชั้นการบังคับบัญชา | ดำเนินการต่อด้วยคำสั่งใน CCW ต่อไป[ 49 ] |
| 34 | ลื่น] | การระบุความยาวการระงับ | ดำเนินโปรแกรมช่องสัญญาณต่อไปหลังจากจำนวนไม่ตรงกัน[ 50 ] |
| 35 | ข้าม | ข้าม | ห้ามอ่านหรือเขียนข้อมูลลงในหน่วยความจำ[ 51 ] |
| 36 | พีซีไอ | การขัดจังหวะที่ควบคุมด้วยโปรแกรม | ร้องขอการขัดจังหวะเมื่อดึงข้อมูล CCW [ 52 ] |
คำแสดงสถานะช่อง
คำสถานะช่องสัญญาณ (CSW) [ 2 ] : 113–121 ให้ข้อมูลที่เกี่ยวข้องกับการขัดจังหวะ I/O
| บิต | สนาม |
|---|---|
| 0-3 | กุญแจ[ 53 ] |
| 4-7 | 0000 |
| 8-31 | ที่อยู่คำสั่ง[ 53 ] |
| 32-47 | สถานะ[ 54 ] |
| 32-39 |
|
| 32 | |
| 33 | |
| 34 | |
| 35 | |
| 36 | |
| 37 | |
| 38 | |
| 39 | |
| 40-47 |
|
| 40 | |
| 41 | |
| 42 | |
| 43 | |
| 44 | |
| 45 | |
| 46 | |
| 47 | |
| 48-63 | จำนวน[ 55 ] |
- ฟิลด์Protection Keyประกอบด้วยคีย์ป้องกันจาก CAW ในขณะที่การดำเนินการ I/O เริ่มต้นสำหรับ I/O เสร็จสมบูรณ์หรือการขัดจังหวะ PCI [ 53 ]
- ฟิลด์ที่อยู่คำสั่งประกอบด้วยที่อยู่ + 8 ของ CCW ตัวสุดท้ายที่ดึงมาสำหรับ I/O เสร็จสมบูรณ์หรือการขัดจังหวะ PCI อย่างไรก็ตาม มีข้อยกเว้น 9 ประการ[ 53 ]
- ฟิลด์สถานะประกอบด้วย บิต สถานะช่องสัญญาณ หนึ่งไบต์ ซึ่งระบุเงื่อนไขที่ตรวจพบโดยช่องสัญญาณ[ 28 ]และ บิต สถานะหน่วย หนึ่งไบต์ ซึ่งระบุเงื่อนไขที่ตรวจพบโดยหน่วย I/O [ 33 ]ไม่มีการแยกความแตกต่างระหว่างเงื่อนไขที่ตรวจพบโดยหน่วยควบคุมและเงื่อนไขที่ตรวจพบโดยอุปกรณ์
- จำนวนที่เหลืออยู่คือครึ่งคำที่ให้จำนวนไบต์ในพื้นที่ที่อธิบายโดย CCW ที่ยังไม่ได้ถ่ายโอนไปยังหรือจากช่องสัญญาณ[ 55 ]ความแตกต่างระหว่างจำนวนใน CCW และจำนวนที่เหลืออยู่จะให้จำนวนไบต์ที่ถ่ายโอน
คำสั่งอินพุต/เอาต์พุต
S/360 มีคำสั่ง I/O สี่ คำสั่ง [ 56 ]ได้แก่ เริ่ม I/O (SIO), ทดสอบ I/O (TIO), หยุด I/O (HIO) และทดสอบช่องสัญญาณ (TCH) คำสั่งทั้งสี่นี้เป็นคำสั่งพิเศษ ดังนั้นหากใช้ในสถานะที่มีปัญหา จะทำให้โปรแกรมการทำงานพิเศษหยุดทำงาน ฟิลด์ B 1 (ฐาน) และ D 1 (การเลื่อน) ใช้ในการคำนวณ cuu (ช่องสัญญาณและหมายเลขอุปกรณ์) บิตที่ 8-15 ของคำสั่งไม่ได้ใช้งานและควรเป็นศูนย์เพื่อความเข้ากันได้กับ S/370
เริ่มการรับส่งข้อมูล (SIO)
SIO [ 57 ]พยายามเริ่มต้นโปรแกรมช่องที่ชี้โดยCAWโดยใช้คีย์ป้องกันการจัดเก็บใน CAW
การทดสอบอินพุต/เอาต์พุต (TIO)
TIO [ 58 ] ทดสอบสถานะของช่องสัญญาณและอุปกรณ์ นอกจากนี้ยังสามารถจัดเก็บCSWซึ่งในกรณีนี้จะเสร็จสมบูรณ์ด้วยรหัสเงื่อนไข 1
หยุดการทำงานของ I/O (HIO)
HIO [ 59 ]พยายามยุติโปรแกรมช่องสัญญาณที่ใช้งานอยู่ นอกจากนี้ยังสามารถจัดเก็บCSWซึ่งในกรณีนี้จะเสร็จสมบูรณ์ด้วยรหัสเงื่อนไข 1
ช่องทดสอบ (TCH)
TCH [ 60 ]ทดสอบสถานะของช่องสัญญาณ ไม่ส่งผลกระทบต่อสถานะของโปรแกรมช่องสัญญาณที่ใช้งานอยู่และไม่เก็บCSWไว้
การควบคุมของผู้ปฏิบัติงาน

สถาปัตยกรรมของ System/360 ระบุถึงฟังก์ชันทั่วไปหลายอย่าง แต่ไม่ได้ระบุวิธีการใช้งาน ทำให้ IBM สามารถใช้เครื่องมือทางกายภาพที่แตกต่างกัน เช่น แป้นหมุน แป้นพิมพ์ ปุ่มกด ลูกกลิ้ง รูปภาพ หรือข้อความบนจอ CRT เพื่อเลือกฟังก์ชันและค่าต่างๆ บนโปรเซสเซอร์ต่างๆ การอ้างอิงถึงปุ่มหรือสวิตช์ ใดๆ ควรตีความว่าเป็นการเลือกโดยใช้ลำดับแป้นพิมพ์ที่เทียบเท่ากัน เช่น การเลือกด้วยปากกาแสง
- คำสั่ง System Resetจะส่งสัญญาณรีเซ็ตไปยังทุกช่องสัญญาณ I/O และล้างสถานะของโปรเซสเซอร์ การขัดจังหวะที่ค้างอยู่ทั้งหมดจะถูกยกเลิก คำสั่ง System Reset ไม่รับประกันว่าจะแก้ไขข้อผิดพลาดพาริตีในรีจิสเตอร์ทั่วไป รีจิสเตอร์จุดลอยตัว หรือหน่วยเก็บข้อมูลได้ คำสั่ง System Reset จะไม่รีเซ็ตสถานะของอุปกรณ์ I/O ที่ใช้ร่วมกัน
- การโหลดโปรแกรมเริ่มต้น (IPL) [ 61 ]เป็นกระบวนการสำหรับการโหลดโปรแกรมเมื่อไม่มีตัวโหลดพร้อมใช้งานในหน่วยความจำ โดยปกติเนื่องจากเครื่องเพิ่งเปิดเครื่องหรือเพื่อโหลดระบบปฏิบัติการทางเลือก[ 2 ] : 123 บางครั้งกระบวนการนี้เรียกว่าการบูต
- ในส่วนหนึ่งของฟังก์ชัน IPL ผู้ปฏิบัติงานมีวิธีการระบุที่อยู่ของอุปกรณ์ 12 บิต[ c ]โดยทั่วไปจะใช้แป้นหมุนสามอันดังแสดงในภาพวาดการควบคุมของผู้ปฏิบัติงาน เมื่อผู้ปฏิบัติงาน[ q ]เลือก ฟังก์ชัน โหลดระบบจะทำการรีเซ็ตระบบส่งคำสั่งอ่านช่อง IPL [ r ]ไปยังอุปกรณ์ที่เลือกเพื่ออ่าน 24 ไบต์ลงในตำแหน่ง 0-23 และทำให้ช่องเริ่มดึงCCWที่ตำแหน่ง 8 ผลที่ได้คือเหมือนกับว่าช่องได้ดึง CCW จากตำแหน่ง 0 ที่มีความยาว 24 ที่อยู่ 0 และแฟล็กที่มี Command Chaining + Suppress Length Indication เมื่อการดำเนินการเสร็จสิ้น ระบบจะจัดเก็บที่อยู่ I/O ในครึ่งเวิร์ดที่ตำแหน่ง 2 และโหลด PSW จากตำแหน่ง 0
- โดยทั่วไป การโหลดโปรแกรมเริ่มต้นจะทำจากเทป เครื่องอ่านการ์ด หรือฮาร์ดไดรฟ์ โดยทั่วไปแล้ว ระบบปฏิบัติการจะถูกโหลดจากฮาร์ดไดรฟ์ การโหลดโปรแกรมเริ่มต้นจากเทปหรือการ์ดจะใช้เฉพาะสำหรับการวินิจฉัยปัญหาหรือการติดตั้งระบบปฏิบัติการบนคอมพิวเตอร์เครื่องใหม่เท่านั้น
- สวิตช์ดึงฉุกเฉิน[ 62 ] (ปิดเครื่องฉุกเฉิน, EPO) จะส่งสัญญาณ EPO ไปยังช่อง I/O ทุกช่อง จากนั้นจะปิดไฟไปยังชุดประมวลผล เนื่องจาก EPO จะข้ามลำดับการปิดเครื่องตามปกติ จึงอาจเกิดความเสียหายได้ และการควบคุม EPO จะมีสลักเชิงกลเพื่อให้แน่ใจว่าวิศวกรของลูกค้าจะตรวจสอบอุปกรณ์ก่อนที่จะพยายามเปิดเครื่องอีกครั้ง
- การเปิดเครื่อง[ 62 ]จะเปิดส่วนประกอบทั้งหมดของคอมเพล็กซ์โปรเซสเซอร์และทำการรีเซ็ตระบบ
- การปิดเครื่อง[ 62 ]เริ่มลำดับการปิดเครื่องอย่างเป็นระเบียบ แม้ว่าเนื้อหาในที่เก็บข้อมูลจะยังคงอยู่ แต่คีย์เก็บข้อมูลที่เกี่ยวข้องอาจสูญหายได้
- ปุ่มขัดจังหวะ[ 62 ]ทำให้เกิดการขัดจังหวะภายนอก โดย มีบิต 25 ตั้งค่าใน External Old PSW
- ไฟWait [ 62 ]แสดงว่าPSWมีบิต 14 (รอ) ตั้งค่าไว้ โปรเซสเซอร์จะหยุดชั่วคราว แต่จะกลับมาทำงานต่อเมื่อเกิดสภาวะขัดจังหวะ
- ไฟManual [ 62 ]แสดงว่า CPU อยู่ในสถานะหยุดทำงาน
- ไฟระบบ[ 62 ]แสดงว่ามิเตอร์กำลังทำงานอยู่ ไม่ว่าจะเนื่องมาจากกิจกรรมของ CPU หรือเนื่องมาจากกิจกรรมของช่องสัญญาณ I/O
- ไฟทดสอบ[ 62 ]บ่งชี้ว่าการควบคุมผู้ปฏิบัติงานบางอย่างทำงานอยู่ เมื่อสิ่งอำนวยความสะดวกบางอย่าง เช่น ขั้นตอนคำแนะนำ ถูกใช้โดยคำสั่งวินิจฉัย หรือเมื่อมีสภาวะความร้อนผิดปกติ รายละเอียดขึ้นอยู่กับรุ่น
- ไฟแสดงการโหลด[ 62 ]จะเปิดขึ้นเมื่อ IPL และการเริ่มต้นภายนอก และจะปิดลงเมื่อโหลด PSW จากตำแหน่ง 0 เมื่อกระบวนการโหลดเสร็จสิ้น
- หน่วยโหลด[ 63 ] ควบคุมให้บิต 11 [ s ]ขวาสุดของอุปกรณ์เพื่อทำการ IPL
- ปุ่มLoad [ 64 ]เริ่มลำดับIPL
- สวิตช์คีย์เลือกคำนำหน้า[ 64 ]จะเลือกว่าIPLจะใช้คำนำหน้าหลักหรือคำนำหน้าทางเลือก
- ปุ่มรีเซ็ตระบบ [ 64 ] เริ่มการรีเซ็ตระบบ
- ปุ่มStop [ 64 ]จะทำให้ CPU อยู่ในสถานะหยุดทำงาน โปรแกรมช่องสัญญาณยังคงทำงานต่อไป และเงื่อนไขการขัดจังหวะยังคงรอการดำเนินการ
- สวิตช์อัตรา[ 64 ]กำหนดโหมดที่โปรเซสเซอร์ดึงคำสั่ง โดยสถาปัตยกรรมกำหนดโหมดไว้ 2 โหมด:
- กระบวนการ
- ขั้นตอนคำแนะนำ
- ปุ่มStart [ 64 ] จะเริ่มการ ดึงคำสั่งตามการตั้งค่าของRate Switch
- สวิตช์เลือกพื้นที่จัดเก็บ[ 65 ]จะกำหนดประเภทของทรัพยากรที่เข้าถึงโดยคีย์จัดเก็บและคีย์แสดงผลสถาปัตยกรรมกำหนดตัวเลือกสามแบบ:
- พื้นที่จัดเก็บหลัก
- ทะเบียนทั่วไป
- รีจิสเตอร์จุดลอยตัว
- สวิตช์ที่อยู่[ 65 ]ระบุที่อยู่หรือหมายเลขรีจิสเตอร์สำหรับคีย์ร้านค้าคีย์แสดงผลและในบางรุ่นคีย์ตั้งค่า IC ..
- สวิตช์ข้อมูล[ 65 ]ระบุข้อมูลสำหรับคีย์ร้านค้าและในบางรุ่นคีย์ชุด IC
- คีย์ร้านค้า [ 65 ] จะเก็บค่าไว้ในสวิตช์ข้อมูลตามที่ระบุโดยสวิตช์เลือกพื้นที่จัดเก็บและสวิตช์ที่อยู่
- ปุ่มแสดงผล[ 65 ]จะแสดงค่าที่ระบุโดยสวิตช์เลือกพื้นที่จัดเก็บและสวิตช์ที่อยู่
- Set IC= [ 65 ]จะตั้งค่าส่วนที่อยู่คำสั่งของ PSW จากสวิตช์ข้อมูลหรือสวิตช์ที่อยู่ ขึ้นอยู่กับรุ่น
- สวิตช์เปรียบเทียบที่อยู่[ 65 ]จะเลือกโหมดการเปรียบเทียบและสิ่งที่เปรียบเทียบ การหยุดเมื่อเปรียบเทียบที่อยู่คำสั่งมีอยู่ในทุกโมเดล แต่การหยุดเมื่อเปรียบเทียบที่อยู่ข้อมูลมีอยู่เฉพาะในบางโมเดลเท่านั้น
- ไฟคำนำหน้าทางเลือก[ 65 ]จะสว่างขึ้นเมื่อทริกเกอร์คำนำหน้าอยู่ในสถานะทางเลือก
คุณสมบัติเสริม
ตัวถูกดำเนินการที่จัดเรียงตามไบต์
ในบางรุ่น เช่นS/360-85 [ 9 ] ข้อกำหนดการจัดเรียงสำหรับคำ สั่งสถานะปัญหาบางคำสั่งได้รับการผ่อนปรน ไม่มีกลไกในการปิดคุณสมบัตินี้ และโปรแกรมที่ขึ้นอยู่กับการรับประเภทการตรวจสอบโปรแกรม 6 (การจัดเรียง) บนคำสั่งเหล่านั้นจะต้องได้รับการแก้ไข
เลขคณิตทศนิยม
คุณสมบัติการคำนวณเลขฐานสิบมีคำสั่งที่ใช้กับข้อมูลเลขฐานสิบแบบแพ็ค (packed decimal) เลขฐานสิบแบบแพ็คประกอบด้วยตัวเลข 1-31 หลัก ตามด้วยเครื่องหมาย 4 บิต คำสั่งการคำนวณเลขฐานสิบทั้งหมด ยกเว้น PACK และ UNPACK จะสร้างข้อผิดพลาดข้อมูล (Data exception) หากตัวเลขไม่อยู่ในช่วง 0-9 หรือเครื่องหมายไม่อยู่ในช่วง AF
การควบคุมโดยตรง
คุณสมบัติการควบคุมโดยตรง[ 66 ]ให้สายสัญญาณภายนอกหกเส้นและเส้นทางข้อมูล 8 บิตไป/กลับจากหน่วยเก็บข้อมูล[ 67 ]
เลขคณิตจุดลอยตัว
คุณสมบัติการคำนวณเลขทศนิยมมีรีจิสเตอร์เลขทศนิยม 64 บิตจำนวน 4 ตัว และคำสั่งสำหรับการคำนวณเลขทศนิยมฐานสิบหก 32 และ 64 บิต นอกจากนี้ โปรเซสเซอร์ 360/85 และ 360/195 ยังรองรับเลขทศนิยมความแม่นยำสูง 128 บิตอีกด้วย
ตัวจับเวลาช่วงเวลา
หากติดตั้งคุณสมบัติจับเวลาช่วงเวลา[ 2 ] : 17.1 โปรเซสเซอร์จะลดคำที่ตำแหน่ง 80 ('50'X) เป็นระยะๆ สถาปัตยกรรมไม่ได้ระบุช่วงเวลา แต่กำหนดให้ค่าที่ลบออกนั้นดูเหมือนว่ามีการลบ 1 ออกจากบิต 23 300 ครั้งต่อวินาที รุ่นที่เล็กกว่าจะลดค่าที่ความถี่เดียวกัน (50 Hz หรือ 60 Hz) กับแหล่งจ่ายไฟ AC แต่รุ่นที่ใหญ่กว่าจะมีคุณสมบัติจับเวลาที่มีความละเอียดสูง โปรเซสเซอร์จะทำให้เกิดการขัดจังหวะภายนอกเมื่อตัวจับเวลาเป็นศูนย์
การทำงานหลายระบบ
การทำงานของระบบหลายระบบ[ 68 ]คือชุดคุณสมบัติเพื่อรองรับระบบมัลติโปรเซสเซอร์ เช่นการควบคุมโดยตรงการย้ายตำแหน่งที่อยู่โดยตรง (การใส่คำนำหน้า)
การป้องกันการจัดเก็บ
หากติดตั้งคุณสมบัติการป้องกันการจัดเก็บข้อมูล[ 2 ] : 17-17.1 แล้ว จะมีคีย์จัดเก็บข้อมูล 4 บิตที่เชื่อมโยงกับบล็อกจัดเก็บข้อมูลขนาด 2,048 ไบต์ทุกบล็อก และคีย์นั้นจะถูกตรวจสอบเมื่อจัดเก็บข้อมูลลงในที่อยู่ใดๆ ในบล็อกนั้นโดย CPU หรือช่องสัญญาณ I/O คีย์ CPU หรือช่องสัญญาณเป็น 0 จะปิดใช้งานการตรวจสอบ คีย์ CPU หรือช่องสัญญาณที่ไม่ใช่ศูนย์จะอนุญาตให้จัดเก็บข้อมูลได้เฉพาะในบล็อกที่มีคีย์ที่ตรงกันเท่านั้น
ระบบป้องกันการเขียนทับข้อมูล (Storage Protection) ถูกใช้เพื่อป้องกันไม่ให้แอปพลิเคชันที่ทำงานผิดพลาดเขียนทับข้อมูลของระบบปฏิบัติการหรือแอปพลิเคชันอื่น ซึ่งทำให้สามารถทำการทดสอบควบคู่ไปกับการใช้งานจริงได้ เนื่องจากรหัสลับมีความยาวเพียงสี่บิต จำนวนแอปพลิเคชันที่สามารถทำงานพร้อมกันได้สูงสุดจึงอยู่ที่ 15 แอปพลิเคชัน
ตัวเลือกเพิ่มเติมที่มีในบางรุ่นคือการป้องกันการดึงข้อมูล (fetch protection) ซึ่งช่วยให้ระบบปฏิบัติการสามารถระบุได้ว่าบล็อกข้อมูลใดได้รับการปกป้องจากการดึงข้อมูล รวมถึงจากการจัดเก็บข้อมูลด้วย
การเบี่ยงเบนและการขยาย
System /360 Model 20นั้นแตกต่างอย่างสิ้นเชิงและไม่ควรนับว่าเป็น S/360
คอมพิวเตอร์System/360 รุ่น 44ขาดคำสั่งบางอย่าง แต่มีคุณสมบัติที่ช่วยให้สามารถจำลองคำสั่งที่ขาดหายไปเหล่านั้นในหน่วยความจำที่ซ่อนอยู่ ทำให้สามารถใช้งานระบบปฏิบัติการและแอปพลิเคชันมาตรฐานของ S/360 ได้
บางรุ่นมีคุณสมบัติที่ต่อยอดจากสถาปัตยกรรมเดิม เช่น คำสั่งจำลองการทำงาน การแบ่งหน้าหน่วยความจำ และบางรุ่นอาจมีการเปลี่ยนแปลงเล็กน้อยจากสถาปัตยกรรมเดิม ตัวอย่างเช่น:
- คุณสมบัติมัลติซิสเต็มบน S/360-65 ซึ่งปรับเปลี่ยนพฤติกรรมของฟีเจอร์ควบคุมโดยตรงและคำสั่ง Set System Mask (SSM) [ 21 ]
- รุ่นSystem/360 Model 67 -2 มีการเปลี่ยนแปลงที่คล้ายกันแต่ไม่เข้ากัน[ 11 ]
การเปลี่ยนแปลงบางส่วนถูกนำมาใช้เป็นต้นแบบสำหรับคุณลักษณะต่างๆ ของสถาปัตยกรรม S/370
ดูเพิ่มเติม
หมายเหตุ
- ^มีขนาดใหญ่กว่า System/370 รุ่นหลังถึงสองเท่า
- ^การกำหนดค่ารีจิสเตอร์ทั่วไป 0 จะให้ค่าแอดเดรสฐานเป็นศูนย์ แทนที่จะเป็นค่าเนื้อหาของรีจิสเตอร์
- ^ a b cบนโปรเซสเซอร์ที่สอดคล้องกับสถาปัตยกรรม S/360 หมายเลขช่องสัญญาณสูงสุดคือ 6 บิตสิบเอ็ดบิตเพียงพอที่จะระบุ cuu และบิตเจ็ดบิตเพียงพอที่จะให้การปิดกั้นการขัดจังหวะ I/O อย่างไรก็ตาม บน 360/67-2 ที่มีตัวควบคุมช่องสัญญาณ 2846 สองตัว ช่องสัญญาณจะมีหมายเลข 0-6 และ 8-14 [ 11 ] : 15 ในทำนองเดียวกัน 360/195 มีคุณสมบัติช่องสัญญาณแบบขยาย[ 10 ] : 21 แต่กำหนดหมายเลขช่องสัญญาณเป็น 0 ถึง 13 [ 10 ] : 25 การขัดจังหวะ I/O สำหรับตัวควบคุมช่องสัญญาณ 1 บน 360/67-2 ถูกปิดกั้นโดยใช้รีจิสเตอร์ควบคุม และ 360/195 ใช้บิต 7 (ช่องสัญญาณ 6) ของ System Mask เป็นบิตมาสก์สรุปสำหรับช่องสัญญาณ 6 ขึ้นไปการขัดจังหวะจากช่องสัญญาณมากกว่าเจ็ดช่อง[ 12 ]อธิบายการปิดบังโดยสรุปสำหรับช่องสัญญาณเพิ่มเติม แต่ข้อความอื่นในหลักการทำงานยังคงอ้างถึงขีดจำกัดที่ 7 ช่องสัญญาณ ซอฟต์แวร์มาตรฐานรองรับช่องสัญญาณ 0-F
- เนื่องจากการออกแบบ S/360 เกิดขึ้นพร้อมกับการพัฒนา ASCII ดังนั้นการรองรับ ASCII ของ IBM จึงไม่ตรงกับมาตรฐานที่นำมาใช้ในที่สุด
- ^รุ่นต่อจาก S/360 ได้เพิ่มคำสั่งเพิ่มเติม
- ^เอกสารเกี่ยวกับ S/360 ไม่ได้ใช้คำว่า ความผิดพลาด หรือกับดัก
- ^ a bบน 360/91, [ 20 ] : 15 360/95 และ 360/195 [ 10 ] : 14 a การขัดจังหวะโปรแกรมอาจเกิดขึ้นสำหรับข้อยกเว้นที่ไม่แม่นยำหลายรายการ ILC ในโปรแกรม Old PSW คือ 0 บิต 26-31 คือ 0 และบิต 16-27 คือมาสก์ที่ระบุว่าเกิดข้อยกเว้นใดขึ้น ไม่มีข้อกำหนดสำหรับการรายงานการเกิดข้อยกเว้นเดียวกันหลายครั้ง การรายงานข้อยกเว้นที่ไม่แม่นยำหลายรายการไม่ได้เป็นส่วนหนึ่งของสถาปัตยกรรม S/360
- ^ a b c dมีข้อยกเว้นที่เป็นไปได้ 17 รายการบน 360/67 [ 11 ] : 17 แต่ข้อยกเว้นหน้าและข้อยกเว้นส่วนไม่ได้เป็นส่วนหนึ่งของสถาปัตยกรรม S/360 ในทำนองเดียวกัน รหัสการขัดจังหวะ 18 ('0012'X) บนมัลติโปรเซสเซอร์ 360/65 ไม่ได้เป็นส่วนหนึ่งของสถาปัตยกรรม S/360
- ^บิตข้อมูลจำเพาะไม่ได้ใช้สำหรับการขัดจังหวะที่ไม่แม่นยำบน 360/195
- ^ a bไม่ได้ใช้ใน 360/91
- ^รหัส PSW 0 จะตรงกับรหัสจัดเก็บข้อมูลใดๆ ก็ได้
- แม้ว่าการหมดเวลาของตัวจับเวลาจะเป็นเหตุการณ์ภายใน แต่ก็ทำให้เกิดการขัดจังหวะภายนอก และด้วยเหตุนี้ การขัดจังหวะนี้จึงมักเรียกว่าการขัดจังหวะจากตัวจับเวลา/ภายนอก
- ^เนื่องจากข้อจำกัดเรื่องจำนวนช่องสัญญาณ ซอฟต์แวร์ S/360 และ S/370 รุ่นแรกๆ จึงใช้เพียง 12 บิตในการจัดเก็บที่อยู่ของอุปกรณ์
- ^แต่ขอพูดถึงงานอื่นที่ไม่เกี่ยวข้องต่อ
- ^ระบบปฏิบัติการใช้ดัชนีความสนใจใน Unit Control Block (UCB) เป็นดัชนีในการเข้าถึงตารางความสนใจ
- ^หรือเรียกอีกอย่างว่า Suppress Incorrect Length Indication (SILI)
- ^หรือสิ่งอำนวยความสะดวกอัตโนมัติที่เทียบเท่ากัน
- ^อ่านโดยตั้งค่าบิตตัวดัดแปลงทั้งหมดเป็นศูนย์
- ^มีความไม่สอดคล้องกัน เนื่องจากมีการขัดจังหวะจากช่องสัญญาณมากกว่าเจ็ดช่อง[ 12 ]ทำให้มีช่องสัญญาณมากขึ้น
อ่านเพิ่มเติม
- Prasad, NS (1989). IBM Mainframes . McGraw-Hill. ISBN 0070506868.— บทที่ 3 (หน้า 41–110) อธิบายสถาปัตยกรรมของ System/360
- ไกรเนอร์, แดน (10 สิงหาคม 2554). "คุณสมบัติของซีพียู IBM z/Architecture - มุมมองทางประวัติศาสตร์" (PDF) . วิวัฒนาการของสถาปัตยกรรมเมนเฟรมของ IBM . SHARE 117 ในออร์แลนโด . SHARE . เซสชั่น 9220. สืบค้นเมื่อ7 กุมภาพันธ์ 2566 .
ลิงก์ภายนอก
- ความรู้เบื้องต้นเกี่ยวกับสถาปัตยกรรมของ IBM System/360 (ตำราเรียน)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ สถาปัตยกรรม IBM System/360
สถาปัตยกรรม IBM System/360 เป็น สถาปัตยกรรม ที่ไม่ขึ้นกับรุ่น สำหรับ คอมพิวเตอร์เมนเฟรม ตระกูล S/360 ทั้งหมดรวมถึงแต่ไม่จำกัดเฉพาะ สถาปัตยกรรมชุดคำสั่ง...
คุณสมบัติ
สถาปัตยกรรม System/360 มีคุณสมบัติดังต่อไปนี้:
หน่วยความจำ
หน่วยความจำ ( พื้นที่จัดเก็บ ) ใน System/360 ถูกกำหนดแอดเดรสใน หน่วยไบต์ 8 บิต คำสั่งต่างๆ ทำงานกับหน่วยที่ใหญ่กว่าที่เรียกว่า halfword (2 ไบต์), fullword (4 ไบต์), doubleword (8 ไบต์), quadword (16 ไบต์) และบล็อกพื้นที่จัดเก็บ 2048 ไบต์ โดยระบุแอดเดรสซ้ายสุด...
การแก้ไขปัญหา
System/360 ใช้การกำหนดแอดเดรสแบบตัดทอนคล้ายกับUNIVAC III [ 8 ] นั่นหมายความว่าคำสั่งจะไม่ประกอบด้วยแอดเดรสที่สมบูรณ์ แต่จะระบุรีจิสเตอร์ฐานและค่าออฟเซ็ตบวกจากแอดเดรสในรีจิสเตอร์ฐาน ในกรณีของ System/360 แอดเดรสฐานจะอยู่ในรีจิสเตอร์ทั่วไป 1 ใน 15 [ b ] ตัว...