- สถาปัตยกรรมโปรเซสเซอร์
- สถาปัตยกรรมชุดคำสั่ง RISC และ CISC
- การประมวลผลชุดคำสั่งที่ซับซ้อน (CISC)
- คอมพิวเตอร์ชุดคำสั่งที่ลดลง (RISC)
ระบบฝังตัวเป็นหัวใจและหัวใจหลักของผลิตภัณฑ์อิเล็กทรอนิกส์ส่วนใหญ่ที่มีอยู่ในตลาด เป็นการใช้งานวิศวกรรมที่ฮาร์ดแวร์ตรงตามซอฟต์แวร์ เราถูกล้อมรอบด้วยโลกของระบบฝังตัวพร้อมด้วยมินิคอมพิวเตอร์ในล็อคประตูไบโอเมตริกซ์เครื่องบินรถยนต์เครื่องกระตุ้นหัวใจ ฯลฯ ทรัพยากรเหล่านี้มีขนาดเล็กระบบที่ชาญฉลาดและทรงพลังช่วยเราในงานประจำวัน
เคยคิดเกี่ยวกับการทำงานของร่างกายระบบประสาทสมองและความสามารถในการทำงานหลายอย่าง หากคุณรวมฟังก์ชันเหล่านี้ทั้งหมดเข้าด้วยกันคุณจะได้ภาพคร่าวๆของระบบฝังตัวทางชีวภาพ สมองของเราซ่อนรายละเอียดที่ซับซ้อนของการทำงานที่เกิดขึ้นภายใน แต่ยังช่วยให้เราสามารถควบคุมได้อย่างมีศักยภาพสูงสุด ความซับซ้อนเดียวกันนี้เกิดขึ้นกับโปรเซสเซอร์หรือคอนโทรลเลอร์ที่ใช้ในระบบฝังตัว พวกเขาซ่อนรายละเอียดที่ซับซ้อนและมอบอินเทอร์เฟซระดับสูงให้เราใช้งานได้ สำหรับระดับของสิ่งที่เป็นนามธรรมเราสามารถอธิบายได้ว่ารหัสสำหรับการเพิ่มตัวเลขสองตัวในภาษาโปรแกรมระดับสูงทำให้รีจิสเตอร์ในชิปจัดการกับบิตและให้เอาต์พุตกลับไปยังผู้ใช้ได้อย่างไร
สถาปัตยกรรมโปรเซสเซอร์
หน่วยประมวลผลกลางหมายถึงทั้งไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์ดำเนินงานที่เฉพาะเจาะจงด้วยความช่วยเหลือของที่หน่วยควบคุม (CU) และเลขคณิต Logical Unit (ALU) เนื่องจากคำแนะนำถูกส่งมาจาก RAM CPU จะทำหน้าที่ด้วยความช่วยเหลือของหน่วยช่วยเหลือทั้งสองโดยการสร้างตัวแปรและกำหนดค่าและหน่วยความจำ สิ่งสำคัญมากที่จะต้องรู้ว่า CPU ดำเนินการทั้งหมดนี้อย่างไรด้วยความช่วยเหลือของสถาปัตยกรรม หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการทำงานของไมโครคอนโทรลเลอร์คุณสามารถอ่านบทความพื้นฐานของไมโครคอนโทรลเลอร์ได้
ซีพียูทุกตัวมีหน่วยความจำที่เกี่ยวข้องเพื่อเก็บโปรแกรมและข้อมูล โปรแกรมและข้อมูลทำงานร่วมกับ CPU เพื่อรับเอาต์พุต โปรแกรมจัดเตรียมคำสั่งในขณะที่ข้อมูลให้ข้อมูลที่จะดำเนินการ ในการเข้าถึงโปรแกรมและข้อมูล CPU ใช้บัสบัสเหล่านี้เป็นสายไฟซึ่งเป็นร่องรอยของสายไฟที่แม่นยำกว่าที่คุณอาจเห็นบนแผงวงจรพิมพ์ ในช่วงหลายปีที่ผ่านมาไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์มีการพัฒนาโดยการปรับสถาปัตยกรรมต่างๆตามความต้องการของแอพพลิเคชั่นหรือการออกแบบการเลือกไมโครคอนโทรลเลอร์ได้รับอิทธิพลจากประเภทของสถาปัตยกรรมที่ใช้ ลองมาดูสถาปัตยกรรมยอดนิยม
สถาปัตยกรรมฟอน - นอยมันน์ / ปรินซ์ตัน
วิธีที่ CPU เข้าถึงโปรแกรมและข้อมูลจะบอกเกี่ยวกับสถาปัตยกรรมของ CPU ก่อนหน้านี้มีการใช้บัสตัวเดียวเพื่อเข้าถึงโปรแกรมและข้อมูล ประเภทของสถาปัตยกรรมนี้เป็นที่รู้จักกันVon Neumann สถาปัตยกรรมหรือมากกว่าเพียงแค่พรินซ์ตันสถาปัตยกรรมบัสเดียวในการรับรหัสและข้อมูลหมายความว่าพวกมันเข้ามาขวางทางกันและกันและทำให้ความเร็วในการประมวลผลของ CPU ช้าลงเพราะแต่ละคนต้องรอให้อีกฝ่ายดึงข้อมูลให้เสร็จสิ้น ข้อ จำกัด นี้ยังเป็นที่รู้จักกันสภาพฟอนนอยมันน์-คอขวด
สถาปัตยกรรมฮาร์วาร์ด
เพื่อเร่งกระบวนการHarvard Architectureได้ถูกเสนอ ในสถาปัตยกรรมนี้มีบัสข้อมูลแยกต่างหากสำหรับข้อมูลและโปรแกรม ดังนั้นจึงหมายความว่าสถาปัตยกรรมนี้เสนอให้ใช้รถประจำทางสี่คัน
- ชุดบัสข้อมูลที่นำข้อมูลเข้าและออกจาก CPU
- ชุดของบัสที่อยู่สำหรับการเข้าถึงข้อมูล
- ชุดบัสข้อมูลสำหรับใส่โค้ดลงใน CPU
- แอดเดรสบัสสำหรับการเข้าถึงรหัส
การใช้แอดเดรสบัสและบัสข้อมูลแยกจากกันทำให้ CPU มีเวลาในการประมวลผลต่ำ แต่ต้องเสียค่าใช้จ่ายในการออกแบบสถาปัตยกรรมที่ซับซ้อน สถาปัตยกรรม Von Neumann อาจฟังดูน่าเกียจ แต่ก็มีข้อดีของการออกแบบที่เรียบง่าย
สถาปัตยกรรมฮาร์วาร์ดนั้นใช้งานได้ง่ายมากเมื่อ CPU และหน่วยความจำใช้พื้นที่เดียวกันหรือ RAM และ ROM อยู่ในตัว (บนชิป) กับหน่วยประมวลผลเช่นในไมโครคอนโทรลเลอร์ที่ระยะทางเป็นไมครอนและมิลลิเมตร อย่างไรก็ตามสถาปัตยกรรมเดียวกันเป็นเรื่องยากที่จะใช้หน่วยความจำที่ถือรหัสภายนอกหน่วยประมวลผลเช่นว่าในx86 ไอบีเอ็มพีซีชุดร่องรอยสายแยกสำหรับทั้งข้อมูลและที่อยู่บนเมนบอร์ดจะทำให้บอร์ดมีความซับซ้อนและมีราคาแพง มาทำความเข้าใจกับตัวอย่างของโปรเซสเซอร์
โปรเซสเซอร์ที่มีบัสข้อมูล 64 บิตและแอดเดรสบัส 32 บิตจะต้องใช้บัสประมาณ 100 บัส (96 สำหรับบัสข้อมูลและแอดเดรสบัสและอีกไม่กี่ตัวสำหรับสัญญาณควบคุม) สำหรับการนำสถาปัตยกรรมฟอน - นอยมันน์ไปใช้ โครงสร้างเดียวกันหากนำมาใช้กับสถาปัตยกรรม Harvard จะมีค่าใช้จ่ายในการลากเส้นคู่ประมาณ 200 ตัวพร้อมพินจำนวนมากที่ออกมาจากโปรเซสเซอร์ ด้วยเหตุผลเดียวกับที่เราไม่เห็นสถาปัตยกรรมฮาร์วาร์ดที่แท้จริงนำมาใช้กับพีซีและเวิร์กสเตชัน แต่จะใช้สถาปัตยกรรม Harvard ที่ได้รับการแก้ไขซึ่งใช้ลำดับชั้นของหน่วยความจำที่มีหน่วยความจำแคชของ CPU เพื่อแยกโปรแกรมและข้อมูล ลำดับชั้นของหน่วยความจำแยกหน่วยเก็บข้อมูลตามลำดับชั้นของเวลาตอบสนองของกระบวนการ
สถาปัตยกรรมชุดคำสั่ง
เนื่องจากโปรแกรม (รหัส) ถูกโหลดลงในหน่วยความจำของระบบ (RAM) จึงถูกดึงโดย CPU (หมายถึงไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์) เพื่อดำเนินการกับข้อมูลจึงคล้ายกับที่เราให้คำแนะนำเมื่อเราฝึกสุนัขให้ การกระทำและคำสั่งบางอย่าง เนื่องจากคำสั่งเหล่านั้นดำเนินการกับทรานซิสเตอร์บางตัวจะเปลี่ยนจากระดับตรรกะหนึ่งไปอีกระดับหนึ่งเพื่อให้สิ่งนั้นเกิดขึ้น โดยพื้นฐานแล้วด้วยความช่วยเหลือของคำแนะนำโปรแกรมเมอร์มนุษย์สื่อสารกับโปรเซสเซอร์ ซีพียูทุกตัวมีชุดคำสั่งเป็นของตัวเองชุดคำสั่งตามสถาปัตยกรรมและความสามารถ
CPU เข้าใจคำแนะนำเหล่านี้ในการรวมกันของ 0 และ 1 ซึ่งยังเป็นที่รู้จักกันในฐานะที่เป็นopcodeสำหรับโปรแกรมเมอร์ที่เป็นมนุษย์มันยากมากที่จะจำการรวมกันของ 0 และ 1 สำหรับทุกคำสั่งที่เกี่ยวข้องกับ CPU เพื่อให้งานของโปรแกรมเมอร์ที่เป็นมนุษย์เป็นเรื่องง่ายเรามีอินเทอร์เฟซระดับสูงของคำสั่งเหล่านี้และคอมไพเลอร์จะแปลงให้อยู่ในรูปของ 0 และ 1 สำหรับการประมวลผล นอกจากนี้ในชุดคำสั่งของ CPU แต่ละตัวยังมีคำสั่งจำนวน จำกัด ที่สามารถเข้าใจได้
ประสิทธิภาพของ CPU
คุณอาจเคยได้ยินคำว่าclock rate ของ CPUที่เกี่ยวข้องกับประสิทธิภาพของ CPU โดยทั่วไปแล้ว CPU จะมีอัตราสัญญาณนาฬิกาเป็น MHz (Mega-Hertz) หรือ GHz (Giga-Hertz) เช่นอัตรานาฬิกา 25 GHz ตัวเลขที่เกี่ยวข้องกับอัตรานาฬิกาจะบอกจำนวนครั้งที่นาฬิกาภายใน CPU ทำเครื่องหมายในรอบต่อวินาที การปฏิบัติจริงของอัตราสัญญาณนาฬิกาสามารถเข้าใจได้จากข้อเท็จจริงที่ว่าคำแนะนำจะดำเนินการตามรอบนาฬิกาของ CPU ซึ่งเป็นสัดส่วนกับจำนวนโปรแกรมที่ CPU สามารถทำงานได้ในแต่ละครั้ง
ประสิทธิภาพการทำงานของซีพียูขึ้นอยู่กับจำนวนของคำสั่งที่ถูกเขียนในโปรแกรมมากขึ้นคำแนะนำอีกครั้งที่ถ่ายโดย CPU ในการดำเนินการของพวกเขา นอกจากนี้ยังขึ้นอยู่กับจำนวนรอบสัญญาณนาฬิกาที่แต่ละคำสั่งดำเนินการคำสั่งบางอย่างต้องใช้รอบสัญญาณนาฬิกามากกว่าคำสั่งอื่น ๆ เพื่อให้ประสิทธิภาพของ CPU ล่าช้า คำแนะนำในโปรแกรมและรอบที่จำเป็นในการดำเนินการแต่ละคำสั่งนั้นแปรผกผันซึ่งกันและกัน การเปลี่ยนอันหนึ่งจะส่งผลต่ออีกอัน นี่คือจุดที่ทำให้อุตสาหกรรมซีพียูถูกแบ่งออก
สถาปัตยกรรมชุดคำสั่ง RISC และ CISC
ดังที่กล่าวไว้ข้างต้นการดำเนินการของโปรแกรมและประสิทธิภาพของ CPU ขึ้นอยู่กับจำนวนคำสั่งในโปรแกรมซึ่งคำสั่งนั้นจะเสนอให้ CPU นั้นเป็นส่วนหนึ่งของชุดคำสั่งและปัจจัยที่สองคือจำนวนรอบสัญญาณนาฬิกาใน ซึ่งแต่ละคำสั่งจะถูกดำเนินการ จากปัจจัยทั้งสองนี้ขณะนี้มีชุดคำสั่งอยู่สองชุด อย่างแรกสุดคือComplex Instruction Set Computing (CISC)ในขณะที่อีกอันคือReduced Instruction Set Computing (RISC) ขอหารือกันของสถาปัตยกรรมเหล่านี้ในรายละเอียดเพื่อให้เข้าใจถึงความแตกต่างระหว่าง RIC และ CISC สถาปัตยกรรม
การประมวลผลชุดคำสั่งที่ซับซ้อน (CISC)
CISC ย่อมาจาก Complex Instruction Set Computing แรงจูงใจหลักของ CISC คือการลดจำนวนคำสั่งที่โปรแกรมดำเนินการซึ่งทำได้โดยการรวมคำสั่งง่ายๆมากมายเช่นโหมดที่อยู่การโหลด ฯลฯ และสร้างคำสั่งที่ซับซ้อนเพียงชุดเดียวคำแนะนำ CISCรวมถึงชุดของคำสั่งที่เรียบง่ายเช่นเดียวกับบางคำสั่งพิเศษที่ใช้เวลารอบสัญญาณนาฬิกามากกว่าหนึ่งในการดำเนินการ คำแนะนำ CISC สามารถทำงานได้โดยตรงบนหน่วยความจำโดยไม่ต้องมีการแทรกแซงของรีจิสเตอร์ซึ่งหมายความว่าไม่จำเป็นต้องมีคำสั่งพื้นฐานบางอย่างเช่นการโหลดค่าและข้อกำหนดของหน่วยความจำ (RAM) คำแนะนำ CISC เน้นฮาร์ดแวร์มากกว่าซอฟต์แวร์ซึ่งหมายความว่าแทนที่จะใส่ภาระในคอมไพเลอร์CISCใช้ทรานซิสเตอร์เป็นฮาร์ดแวร์ในการถอดรหัสและใช้คำสั่ง อย่างไรก็ตามเนื่องจากคำสั่งมีความซับซ้อนและประกอบด้วยหลายขั้นตอนจึงมีการดำเนินการตามจำนวนรอบนาฬิกาที่มากขึ้น
คล้ายคลึงง่ายที่จะเกี่ยวข้องคือเมื่อคุณบอกว่าจะเปิดหนังสือและอ่าน 3 ถบทที่ 2 ครั้งที่หน้า ในชุดของกิจกรรมนี้คุณทำหลายขั้นตอนเหมือนการหาหนังสือเล่มนี้มาจากกระเป๋าของคุณมากกว่าสับหน้าไปยังบทที่ 3 และจากนั้นไปที่ 2 ครั้งที่หน้าของบทที่แล้วเริ่มต้นการอ่าน ชุดของขั้นตอนถ้ารวมกันในคำสั่งเดียวของการอ่านหน้า 44 (ซึ่งเป็น 2 การให้ครั้งหน้าจำนวน 3 ถบท) เราได้รับการเรียนการสอน CISC
คอมพิวเตอร์ชุดคำสั่งที่ลดลง (RISC)
ชิปแบบบูรณาการตัวแรกได้รับการออกแบบโดย Jack Kilby ในปีพ. ศ. 2501 ซึ่งเป็นออสซิลเลเตอร์และไมโครโปรเซสเซอร์เชิงพาณิชย์ตัวแรกของปี 1970 ออกมาจาก Intel แม้ว่าในช่วงเริ่มต้นของโปรเซสเซอร์จะไม่มี CISC สถาปัตยกรรม CISC มีความซับซ้อนมากขึ้นและยากที่จะจัดการ ออกแบบใหม่ทั้งหมดของสถาปัตยกรรม CISC ที่รู้จักกันเป็น RISC ออกมาจากไอบีเอ็มโดยจอห์นโค้กดังนั้นเพื่อแยกความแตกต่างระหว่างสองสถาปัตยกรรมจึงมีการนำคำว่าRISC และ CISCมาใช้
RISC ย่อมาจากการคำนวณชุดคำสั่งที่ลดลง แรงจูงใจหลักของ RISC คือการนำเสนอขนาดและการดำเนินการตามคำสั่งที่สม่ำเสมอ สิ่งนี้ทำได้โดยการแนะนำชุดคำสั่งง่ายๆซึ่งสามารถดำเนินการเป็นหนึ่งคำสั่งต่อรอบซึ่งทำได้โดยการทำลายคำสั่งที่ซับซ้อนเช่นการโหลดและจัดเก็บเป็นคำสั่งที่แตกต่างกันโดยแต่ละคำสั่งใช้เวลาประมาณหนึ่งรอบนาฬิกาในการดำเนินการสถาปัตยกรรม RISCรวมถึงคำแนะนำง่ายๆที่มีขนาดเดียวกันซึ่งอาจจะดำเนินการในรอบสัญญาณนาฬิกาเดียวเครื่องที่ใช้ RISC ต้องการ RAM มากกว่า CISCเพื่อเก็บค่าขณะโหลดแต่ละคำสั่งลงในรีจิสเตอร์ การดำเนินการคำสั่งเดียวต่อรอบทำให้เครื่องจักรที่ใช้ RISC ได้เปรียบในการไปป์ไลน์(pipelining คือกระบวนการที่โหลดคำสั่งถัดไปก่อนที่คำสั่งแรกจะดำเนินการซึ่งจะเพิ่มประสิทธิภาพของการดำเนินการ) สถาปัตยกรรม RISC เน้น