☆◦˚ PiM ˚◦☆'s profile☆。+゚°•|| T h e - P i M ...PhotosBlogListsMore ![]() | Help |
|
|
☆。+゚°•|| T h e - P i M ||•°゚+。☆™ส ถ า น ะ : คิ ด ถึ ง ค น ไ ก ล ^ ^
ครอบครัวมีกันอยู่ 4 คน พ่ออายุ 64 ปี ตาบอด 2 ข้าง ส่วนแม่อายุ 43 ปี ตาบอด 1 ข้าง หูหนวก 1 ข้าง พงษ์เป็นพี่ชายคนโต เรียนอยู่ชั้นป.4 แต่เป็นเด็กไม่ค่อยพูด และมีน้องชายอีก 1 คน เรียนอยู่ชั้นป.3 ความแตกต่างระหว่างอายุ และสภาพที่จำยอมของครอบครัวทำให้ความเป็นอยู่ในแต่ละวันไม่มีทางเลือกมากนัก ค่าใช้จ่ายในครอบครัวอาศัยเงินสงเคราะห์คนชราของพ่อเดือนละ 300 บาท นอกจากนี้สิ่งที่แม่และพงษ์สามารถทำได้ คือ การหาของต่างๆ จากท้องทุ่งนาแถวบ้านไว้ขาย เช่น ผักบุ้ง ตำลึง ปูนา และปลา ส่วนใหญ่พงษ์จะเป็นคนออกหาปลา และปู ส่วนแม่จะเป็นคนนำของไปขายที่ตลาดแถวหมู่บ้าน รายได้จากการขายของไม่เกิน 30 บาท : วัน ทุกคนใช้ชีวิตแต่ละวันอย่างสมถะ เพราะเข้าใจสภาพที่เป็นอยู่ของตนเอง ขณะที่ลูกๆ ก็ไม่เคยเรียกร้องอยากได้อะไรจากพ่อแม่ ในทางกลับกันพงษ์กับพอใจกับของที่มี แม้กระทั่งจักรยานเก่าๆ ที่พ่อตั้งใจประกอบขึ้นให้ใหม่จากโครงเหล็กที่หาเก็บไว้ ติดตามความน่ารัก และการดิ้นรนเอาตัวรอดของพงษ์และครอบครัวได้ในรายการสานรัก คนเก่งหัวใจแกร่ง ...
ร่ ว ม บ ริ จ า ค ใ ห้ น้ อ ง พ ง ษ์ 535-0-11074-8 ธ น า ค า ร ก รุ ง ไ ท ย ชื่ อ บั ญ ชี ด.ช.จุลพงษ์ ทรายสาลี H a l o !! I'm.. "PiMcHaNok_GR™" 55+
December 17 Architecture Unit11,12บทที่ 11 11.1 การกำหนดที่อยู่ เขตข้อมูลสำหรับตำแหน่งที่อยู่ในรูปแบบคำสั่งทั่วไปมักจะมีขนาดเล็ก ในขณะที่ความต้องการที่จะอ้างอิงถึงตำแหน่งที่อยู่ขนาดใหญ่ ในหน่วยความจำหลัก หรือบางระบบถ้ามีขนาดใหญ่กว่านั้นก็จะใช้หน่วยความจำเสมือน การใช้ตัวถูกกระทำโดยตรง เป็นรูปแบบการกำหนดที่อยู่แบบที่ง่ายที่สุด คือตัวถูกกระทำนั้นปรากฏอนู่ในคำสั่งนั้นเอง OPERAND = A ภาวะกำหนดที่อยู่นี้ใช้ในการกำหนดและใช้ค่าคงที่ หรือกำหนดค่าคงที่ให้กับตัวแปรโดยทั่วไป ตัวเลขจะถูกเก็บอยู่ในรูปแบบทูคอมพลีเมนต์ บิตซ้ายสุดของตัวถูกกระทำจะใช้เป็นบิตเครื่องหมาย เมื่อตัวถูกกระทำถูกอ่านค่าเข้ามาในรีจีสเตอร์ข้อมูล บิตเครื่องหมายจะถูกทำสำเนาเพื่อเติมบิตที่เหลือทางด้านซ้ายให้เต็ม word ข้อดี : ไม่มีการอ้างอิงถึงหน่วยความจำนอกเหนือไปจากการอ่านคำสั่งเข้ามาในซีพียู (instruction fetch) จึงประหยัดวงรอบหรือความจำ cache ได้ 1 วงรอบ ข้อด้อย : ขนาดของตัวเลขจะถูกจำกัดด้วยขนาดของเขตข้อมูลตำแหน่งที่อยู่ ซึ่งในคำสั่งส่วนใหญ่จะมีขนาดเล็ก เช่น 20 บิต การอ้างอิงโดยตรง เขตข้อมูลตำแหน่งที่อยู่จะบรรจุตำแหน่งที่อยู่จริงของตัวถูกกระทำเอาไว้ดังนี้ EA (Effective Address) = A ได้รับความนิยมในคอมพิวเตอร์รุ่นแรกๆ แต่ตอนนี้ไม่แล้ว การประมวลผลต้องใช้วงรอบการอ้างอิงถึงหน่วยความจำเพิ่มขึ้นอีก 1 วงรอบ โดยไม่ต้องมีการคำนวณเพิ่มเติม ข้อด้อย : ขอบเขตที่จำกัดในการอ้างอิงตำแหน่งข้อมูลในหน่วยความจำ การอ้างอิงทางอ้อม เป็นการใช้เขตข้อมูลตำแหน่งที่อยู่ในการอ้างอิงถึงตำแหน่ง word ในหน่วยความจำที่เก็บข้อมูลเอาไว้ EA = (A) เครื่องหมายวงเล็บในที่นี้ใช้ในความหมายว่า “ค่าที่เก็บอยู่ในตำแหน่งที่อ้างอิงถึงโดย A ข้อดี ถ้า word ในหน่วยความจำมีขนาด nบิต จะทำให้ผู้ใช้สามารถอ้างอิงข้อมูลได้ถึง 2n ข้อด้อย คำสั่งประเภทนี้จะต้องอ้างอิงหน่วยความจำเพิ่มขึ้นอีก 2 วงรอบ จึงจะสามารถอ่านค่าตัวถูกกระทำและประมวลผลได้ นั่นคือ หนึ่งวงรอบสำหรับอ่าน word ที่อ้างอิงถึงโดย A และอีกหนึ่งวงรอบสำหรับอ่านค่าข้อมูลที่แท้จริงที่อยู่ในตำแหน่ง word ที่ระบุโดย A นั้น
การอ้างอิงผ่านรีจิเตอร์โดยตรง มีความคล้ายกับการอ้างอิงโดยตรง สิ่งที่แตกต่างกัน คือ เขตข้อมูลตำแหน่งที่อยู่ในคำสั่งเครื่องจะบรรจุหมายเลขของรีจิสเตอร์ที่อ้างอิงแทนการกำหนดตำแหน่งที่อยู่ในหน่วยความจำ EA = R โดยปกติเขตข้อมูลตำแหน่งที่อยู่ที่กำหนดหมายเลขรีจิสเตอร์นั้น จะมีขนาดระหว่าง 3 ถึง 5 บิต ทำให้สามารถอ้างอิงรีจิสเตอร์ได้ตั้งแต่ 8 ถึง 32 ตัว ข้อได้เปรียบในการอ้างอิงรีจิสเตอร์โดยตรง ได้แก่ 1.คำสั่งเครื่องต้องการพื้นที่ขนาดเล็กมากสำหรับการอ้างอิงหมายเลขรีจิสเตอร์ และ 2. ไม่ต้องเสียเวลากับการอ้างอิงหน่วยความจำเพื่ออ่านข้อมูลตัวถูกกระทำ ข้อจำกัดของวิธีการนี้คือมีพื้นที่สำหรับเก็บข้อมูลขนาดจำกัดมาก การอ้างอิงผ่านรีจิสเตอร์ทางอ้อม การอ้างอิงรีจิสเตอร์โดยตรง เปรียบได้กับการอ้างอิงหน่วยความจำโดยตรง การอ้างอิงรีจิสเตอร์ทางอ้อม ก็เปรียบได้กับการอ้างอิงหน่วยความจำทางอ้อม ความแตกต่าอยู่ที่ข้อมูลที่บรรจุอยู่ภายในเขตข้อมูลตำแหน่งที่อยู่ในคำสั่งเครื่องว่าเป็นตำแหน่งในหน่วยความจำหรือเป็นหมายเลขรีจิสเตอร์ EA = (R) ข้อดีและข้อจำกัดคล้ายกับข้อดีและข้อจำกัดของการอ้างอิงหน่วยความจำทางอ้อม ในทั้งสองกรณี พื้นที่ที่ถูกจำกัดด้วยขนาดของเขตข้อมูลตำแหน่งที่อยู่ซึ่งได้รับการแก้ไขโดยให้ข้อมูลในเขตข้อมูลนั้นอ้างอิงถึงตำแหน่งในหน่วยความจำที่มีขนาดเป็น word แทน ซึ่งช่วยให้สามารถอ้างอิงถึงพื้นที่ขนาดใหญ่กว่าได้ (และยังเป็นการทำให้ใช้พื้นที่ในคำสั่งเครื่องน้อยลง) คุณสมบัติที่สำคัญ คือ การนำมาใช้เป็นกลไกที่มีประสิทธิภาพสำหรับโปรแกรมวนซ้ำหลายรอบ การใช้สแต็ก สแต็ก หมายถึง อาร์เรย์ของตำแหน่งที่อยู่ที่เรียงกันตามลำดับ บางครั้งเรียกว่า pushdown list หรือ last-in-first-outqueue สแต็กมักจะเป็นส่วนของหน่วยความจำที่ถูกสงวนไว้ใช้งานโดยเฉพาะ ข้อมูลจะถูกใส่เข้าไปบนสุดของสแต็ก สแต็กมักจะมีข้อมูลบางส่วนอยู่เสมอ สิ่งที่นำมาใช้ร่วมกับสแต็ก คือ ตัวชี้ หรือ พอยเตอร์ ซึ่งจะเก็บที่อยู่ของข้อมูลตัวบนสุดของสแต็กเอาไว้เสมอ เพื่อเพิ่มประสิทธิภาพให้ดีขึ้น ข้อมูลตัวสองตัวบนสุดมักจะถูกเก้บไว้ในรีจิสเตอร์ภายในซีพียู 11.2 ภาวะการกำหนดที่อยู่ใน Pentium และ PowerPC ซีพียู Pentium ประกอบด้วยภาวการณ์กำหนดที่อยู่หลายแบบ ซึ่งมีวัตถุประสงค์เพื่อช่วยให้การประมวลผลโปรแกรมภาษาระดับสูงเป็นไปอย่างมีประสิทธิภาพ ภาวะการกำหนดที่อยู่ของซีพียู PowerPC เป็นสถาปัตยกรรมแบบ RISC (Reduced Instruction Set Computer) ที่มีความแตกต่างจากสถาปัตยกรรมแบบ CISC (Complex Instruction Set Computer) อย่าง Pentium ตรงที่ซีพียู PowerPC ใช้ภาวะการกำหนดที่อยู่แบบตรงไปตรงมา สถาปัตยกรรมแบบ Load/Store ซีพียู PowerPC สนับสนุนภาวะ การกำหนดที่อยู่สองแบบ คือ คำสั่งสำหรับอ่านข้อมูล และการบันทึกข้อมูล (Load/Store) เป็นประโยชน์มากต่อโปรแกรมแบบวนซ้ำที่ทำงานกับอาร์เรย์ Branch addressing Branch addressing หมายถึง การกำหนดตำแหน่งที่อยู่ของคำสั่งต่อไปที่จะนำมาประมวลผล ซึ่งจำเป็นว่าจะต้องเป็นคำสั่งในลำดับต่อจากคำสั่งที่กำลังประมวลผลอยู่ในปัจจุบัน Branch addressing สำหรับซีพียู PowerPC มีอยู่สามวิธี วิธีแรกเรียกว่า absolute addressing มักจะนำมาใช้งานร่วมกับคำสั่ง unconditional branch คือ จะกำหนดตำแหน่งที่อยู่ของคำสั่งต่อไปให้ในทุกกรณี ตำแหน่งของคำสั่งจะนำมาจากค่าที่เก็บไว้โดยตรงในคำสั่งเครื่องขนาด 24 บิต ซึ่งจะถูกขยายให้เป็น 32 บิต ด้วยการเพิ่ม 00 เข้าไปต่อท้ายที่ตำแหน่งสุดท้าย จากนั้นจะทำ sign extending คือ การนำบิตเครื่องหมายของข้อมูล 24 บิตนั้นมาเติมเป็นบิตส่วนหัวให้ครบ 32 บิต วิธีที่ 2 คือ relative addressing ค่าที่เก็บไว้โดยตรงในคำสั่งเครื่องขนาด 24 บิต หรือ 16 บิต จะถูกนำมาขยายเป็น 32 บิต ด้วยวิธีเดิม ค่าที่คำนวณได้จะถูกนำมาบวกเข้ากับรีจิสเตอร์ program counter เพื่อกำหนดตำแหน่งคำสั่งที่มีความสัมพันธ์กับตำแหน่งคำสั่งในปัจจุบัน วิธีที่ 3 คือ indirect addressing จะนำตำแหน่งของคำสั่งต่อไปมาจาก link register หรือ count register รีจิสเตอร์เหล่านี้สามารถนำมาใช้เป็นตัวควบคุมการโปรแกรมวนซ้ำได้ คำสั่งทางคณิตศาสตร์ การคำนวณทางคณิตศาสตร์กับเลขจำนวนเต็ม ตัวถูกกระทำทุกตัวจะต้องถูกเก็บไว้ที่รีจิสเตอร์ หรือเป็นส่วนหนึ่งของคำสั่งเครื่อง การกำหนดที่อยู่โดยใช้รีจิสเตอร์จะกำหนดรีจิสเตอร์ที่เป็นแหล่งข้อมูล หรือที่เก็บผลลัพธ์ไว้ในรีจิสเตอร์ตัวหนึ่งจากกลุ่มรีจิสเตอร์สำหรับใช้งานทั่วไป การกำหนดที่อยู่โดยกำหนดตัวถูกกระทำโดยตรง แหล่งที่มาของข้อมูลจะถูกกำหนดไว้ในข้อมูลขนาด 16 บิต ที่เป็นส่วนหนึ่งของคำสั่งเครื่อง
บทที่12 12.1 การจัดองค์ประกอบของโปรเซสเซอร์ เริ่มด้วยการกำหนดความต้องการใช้งาน หรือสิ่งที่โปรเซสเซอร์จะต้องทำ · ดึงคำสั่งเข้ามา (fetch instruction) นั่นคือการที่ซีพียูอ่านคำสั่งมาจากหน่วยความจำหลักเข้ามาเก็บไว้ภายในตัวซีพียู · แปลความหมายของคำสั่ง (Interpret instruction) คำสั่งเครื่องจะถูกแปลความหมายเพื่อจะได้ทราบว่าคำสั่งนั้นต้องการให้ทำงานอย่างใด · ดึงข้อมูล(fetch data) การประมวลผลคำสั่งเครื่องคำสั่งหนึ่ง อาจจำเป็นต้องอ่านข้อมูลจากหน่อยความจำหลัก หรืออุปกรณ์ไอโอเข้ามาด้วย · ประมวลผลข้อมูล(process data) การประมวลผลคำสั่งอาจเกี่ยวข้องกับการทำงานทางคณิตศาสตร์ หรือตรรกะกับข้อมูล · การบันทึกข้อมูล (write data) ผลการประมวลข้อมูล อาจต้องการให้บันทึกผลลัพธ์ที่ได้ไว้ในหน่วยความจำหลักหรืออุปกรณ์ไอโอ การทำงานในสิ่งที่กล่าวถึงนี้ เห็นได้ชัดว่าซีพียูมีความจำเป็นที่จะต้องจัดเก็บข้อมูลบางส่วนไว้เป็นการชั่วคราว ซีพียูอาจจะต้องจดจำตำแหน่งที่อยู่ของคำสั่งปัจจุบัน เพื่อจะ ได้ทราบตำแหน่งของคำสั่งต่อไปที่จะนำมาประมวลผล ส่วนประกอบหลักของซีพียูนั้นประกอบไปด้วย หน่วยเอแอลยู (Arithmetic and logic unit) เป็นหน่อยที่ทำการประมวลผลให้เกิดขึ้น หน่วยควบคุม (Control unit) ทำหน้าที่ควบคุมการเคลื่อนย้ายข้อมูลและคำสั่งเครื่องเข้า และออกจากซีพียูและควบคุมการทำงานของหน่วยเอแอลยู 12.2 การจัดองค์ประกอบของรีจิสเตอร์ ภายในซีพียูชุดหนึ่ง ทำหน้าที่เป็นหน่วยความจำระดับชั้นหนึ่งที่อยู่สูงกว่าระดับชั้นของหน่วยความจำหลักและหน่วยความจำ cache รีจิสเตอร์ที่อยู่ในซีพียูทำหน้าที่สองบทบาทคือ · รีจิสเตอร์ที่ผู้ใช้มองเห็นได้ (user-visible registers) รีจิสเตอร์ในกลุ่มนี้อนุญาตให้คำสั่งในโปรแกรมสามารถลการอ้างอิงข้อมูลในหน่วยความจำหลัก โดยนำรีจิสเตอร์มาใช้งานแทน · รีจิสเตอร์สำหรับการควบคุมและรายงานสถานการณ์ทำงาน (control and status registers) รีจิสเตอร์ในกลุ่มนี้ถูกนำไปใช้โดยหน่วยควบคุมเพื่อควบคุมการทำงานของซีพียู และถูกใช้โดยคำสั่งพิเศษของระบบปฏิบัติการในการควบคุมการประมวลผลของโปรแกรม รีจิสเตอร์ส่วนที่ผู้ใช้มองเห็นได้ คือ รีจิสเตอร์ที่สามารถใช้คำสั่งภาษาเครื่องควบคุมและใช้งานได้ผ่านการประมวลผลโดยซีพียู แบ่งออกดังนี้ · รีจิสเตอร์เพื่อใช้งานทั่วไป สามารถนำไปใช้งานได้หลายหน้าที่ตามที่ผู้พัฒนาโปรแกรมต้องการ บางครั้งการใช้งานในชุดคำสั่งนั้นมีคุณสมบัติ orthogonal กับการทำงานในคำสั่งนั้นๆได้ · รีจิสเตอร์สำหรับเก็บข้อมูล สามารถนำมาใช้เก็บข้อมุลซึ่งไม่สามารถนำไปใช้ในคำสั่งการคำนวณหาค่าตำแหน่งที่อยู่ · รีจิสเตอร์สำหรับเก็บตำแหน่งที่อยู่ อาจเป็นรีจิสเตอร์สำหรับใช้งานทั่วไป หรือเป็นรีจิสเตอร์ที่กำหนดให้ใช้ในการอ้างอิงเกี่ยวกับตำแหน่งที่อยู่เท่านั้น ตัวชี้ตำแหน่งเซ็กเมนต์ ในเครื่องที่ใช้วิธีกำหนดตำแหน่งที่อยู่แบบ segmented addressing อาจมีการใช้รีจิสเตอร์มากกว่าหนึ่งตัว ตัวชี้ตำแหน่งดรรชนี รีจิสเตอร์ในกลุ่มนี้ใช้สำหรับการกำหนดตำแหน่งที่อยู่แบบ indexed addressing และอาจเป็นชนิด autoindexing ก็ได้ ตัวชี้ตำแหน่งในสแต็ก ถ้าคอมพิวเตอร์นั้นใช้ระบบ user-visible stack addressing สแต็กที่นำมาใช้งานจะเก็บอยู่ในหน่วยความจำ และจะมีรีจิสเตอร์ตัวหนึ่งที่ใช้ในการชี้ตำแหน่งข้อมูลตัวบนสุดในสแต็กนั้น วิธีการนี้ช่วยให้สามารถอ้างอิงตำแหน่งข้อมูลโดยนัยได้ นั่นคือการใช้คำสั่ง PUSH , POP และคำสั่งอื่นๆ ควรจะใช้รีจิสเตอร์สำหรับใช้งานทั่วไปทั้งหมด หรือกำหนดหน้าที่การทำงานเฉพาะอย่างให้แก่รีจิสเตอร์แต่ละตัว ซึ่งช่วยให้ประหยัดจำนวนบิตที่ต้องนำมาใช้ในคำสั่งเครื่องได้ แต่ในทางกลับกันการออกแบบแนวทางนี้ เป็นการจำกัดความคล่องตัวในการเขียนและใช้งานคำสั่งเครื่อง จำนวนรีจิสเตอร์ที่มีใช้งานมีผลต่อการออกแบบชุดคำสั่งเช่นเดียวกัน เนื่องจากจำนวนรีจิสเตอร์ที่เพิ่มขึ้นนั้น ทำให้ต้องมีจำนวนบิตสำหรับการอ้างอิงถึงมากขึ้น จำนวนรีจิสเตอร์ที่น้อยไปจะทำให้ต้องมีการอ้างอิงหน่วยความจำหลักบ่อยขึ้น ในขณะที่จำนวนรีจิสเตอร์ที่มากเกินไปก็ไม่ได้ช่วยลดความถี่ในการอ้างอิงหน่อยความจำหลักให้น้อยลงไป ความยาวของรีจิสเตอร์ รีจิสเตอร์สำหรับเก็บข้อมูลก็จะต้องมีขนาดใหญ่พอที่จะเก็บข้อมูลได้เกือบทุกชนิด รีจิสเตอร์สำหรับเก็บเงื่อนไขการทำงาน ซึ่งบางครั้งจะใช้คำว่า “flags” บิตพิเศษกลุ่มหนึ่งที่จะถูกกำหนดค่าขึ้นมาให้สอดคล้องกับผลการประมวลผลของซีพียู รีจิสเตอร์สำหรับการควบคุมและแสดงสถานะ รีจิสเตอร์กลุ่มนี้ในเครื่องคอมพิวเตอร์ส่วนใหญ่จะไม่ยินยอมให้ผู้ใช้มองเห็น · Program counter (PC) เป็นรีจิสเตอร์ที่เก็บที่อยู่ของคำสั่งที่จะถูกประมวลผลในลำดับต่อไป · Instruction register (IR) เป็นรีจิสเตอร์ที่ใช้เก็บคำสั่งเครื่องที่พึ่งจะถูกอ่านเข้ามาในซีพียู · Memory addressing register (MAR) ใช้เก็บตำแหน่งที่อยู่อ้างอิงในหน่วยความจำหลัก · Memory buffer register (MBR) ใช้เก็บข้อมูล (ขนาด1word) ล่าสุดที่ถูกอ่านเข้ามาในซีพียู หรือใช้เก็บข้อมูลเพื่อเตรียมบันทึกลงในหน่วยความจำหลัก การออกแบบจะต้องกล่าวถึงรีจิสเตอร์ตัวหนึ่ง หรือกลุ่มหนึ่งที่เรียกว่า program status word (PSW) ซึ่งใช้เก็บข้อมูลสถานการณ์ทำงานขิงซีพียู · Sign ใช้เก็บบิตเครื่องหมายของผลลัพธ์ที่เกิดขึ้นจากการประมวลผลคำสั่งทางคณิตศาสตร์ครั้งล่าสุด · Zero บิตนี้จะมีค่าเป็น “1” ถ้าผลลัพธ์ที่เกิดขึ้นจากการประมวลผลคำสั่งทางคณิตศาสตร์ครั้งล่าสุดมีค่าเป็น “0” · Carry บิตนี้จะมีค่าเป็น “1”ผลลัพธ์ที่เกิดขึ้นจากการประมวลผลคำสั่งทางคณิตศาสตร์ครั้งล่าสุดเกิดการยืมเลขจากหลักที่สูงกว่า หรือมีการทดเลขบิตที่มีค่าเกินบิตสูงสุด · Equal บิตนี้จะมีค่าเป็น “1” ถ้าเปรียบเทียบทางตรรกะมีค่าเท่ากัน · Overflow ใช้สำหรับบอกให้ทราบว่า ผลลัพธ์ที่เกิดขึ้นจากการประมวณผลคำสั่งทางคณิตศาสตร์ครั้งล่าสุดเกิด overflow · Interrupt enable/disable ใช้ในการสั่งให้กระบวนการอินเทอร์รัพท์ทำงานหรือหยุดทำงาน · Supervisor ใช้ในการสั่งให้กระบวนการทำงานของซีพียูว่า ในขณะนั้นมีสถานะเป็น user หรือ supervisor คำสั่งเครื่องบางส่วนที่เป็นคำสั่งส่วนสงวน จะสามารถประมวลผลได้ และเนื้อที่หน่วยความจำบางส่วนจะสามารถอ้างอิงได้ก็ต่อเมื่อซีพียูในอยู่สถานะ supervisor เท่านั้น 12.3 วงรอบคำสั่ง · การดึงคำสั่ง (Fetch) เป็นการอ่านคำสั่งที่จะถูกประมวลผลในลำดับต่อไปจากหน่วยความจำหลักเข้ามาไว้ในซีพียู · การประมวลผล (Execute) เป็นการแปลความหมายรหัสดำเนินงาน และทำงานตามที่ต้องการ · อินเทอร์รัพท์ (Intrrupt) ถ้าอนุญาตให้อินเทอร์รัพท์และมีอินเทอร์เกิดขึ้นซีพียูจะบักทึกสถานการณ์ทำงานของโปรแกรมปัจจุบัน และให้บริการแก่อินเทอร์รัพท์ที่ถูกเรียกใช้นั้น วงรอบอินไดเร็ก ถ้าเป็นการอ้างอิงแบบ indirect addressing ด้วยแล้วจะทำให้มีการอ่านข้อมูลในหน่วยความจำเพิ่มขึ้นอีกหนึ่งครั้งเสมอ 12.4 การทำคำสั่งแบบไปป์ไลน์ การเพิ่มประสิทธิภาพของคอมพิวเตอร์สามารถทำได้หลายลักษณะ เช่น การออกแบบแผงวงจรให้มีความเร็วในการทำงานมากยิ่ง หรืออาจเป็นการเพิ่มประสิทธิภาพด้วยการจัดโครงสร้างภายในซีพียูให้ดียิ่งขึ้น ระยะเวลาการประมวลผล มักจะนานกว่าระยะเวลาที่ใช้ในการดึงคำสั่งมาจากหน่วยความจำหลัก คำสั่งที่เกี่ยวกับbranch แบบมีเงื่อนไข (conditional branch) ทำให้ไม่ทราบตำแหน่งที่แน่นอนของคำสั่งที่จะถูกประมวลผลต่อไป ดังนั้นขั้นตอนการดึงคำสั่งจำเป็นจะต้องรอจนกว่าจะทราบตำแหน่งที่แน่นอนของคำสั่งที่จะถูกประมวลผลในลำดับต่อไปซึ่งจะได้รับจากขั้นตอนการประมวลผล และขั้นตอนการประมวลผลก็จะต้องรอจนกว่าคำสั่งต่อไปจะถูกดึงเข้ามา การแบ่งลำดับขั้นตอนการประมวลผลคำสั่งเครื่อง · Fetch instruction(IF) การอ่านคำสั่งเครื่องในลำดับต่อไปเข้ามาเก็บไว้ในบัฟเฟอร์ · Decode instruction(DI) การแปลความหมายรหัสดำเนินงาน และกำหนดค่าตัวถูกกระทำ · Calculate operands(CO) การคำนวณตำแหน่งที่แท้จริง สำหรับตัวถูกกระทำแต่ละตัว ซึ่งอาจจะเกี่ยวข้องกับ displacement ,register indirect ,indirect หรือกำหนดค่าตำแหน่งที่อยู่แบบอื่นๆ · Fetch operands(FO) ทำการดึงค่าตัวถูกกระทำแต่ละตัวจากหน่วยความจำหลักเข้ามาในซีพียู ตัวถูกกระทำที่เก็บอยู่รีจิสเตอร์อยู่แล้วไม่จำเป็นต้องถูกอ่านเข้ามาใหม่ · Execute instruction(EI) ทำการประมวลผลคำสั่ง และอาจมีการบันทึกผลลัพธ์ไว้ในตำแหน่งตัวถูกกระทำที่กำหนดไว้ในคำสั่งเครื่องนั้นๆ Write operand (WO) จัดการบันทึกผลลัพธ์ไว้ในหน่วยความจำ Architecture Unit1,9บทที่ 1 1.1 ออร์กาไนเซชันและสถาปัตยกรรม นิยามแบบเป็นสองส่วน คือ - สถาปัตยกรรมคอมพิวเตอร์(computer architecture) หมายถึงคุณสมบัติต่างๆ ของระบบคอมพิวเตอร์ที่ผู้ใช้สามารถมองเห็นได้ ซึ้งจะเป็นส่วนที่มีผลกระทบโดยตรงต่อการประมวลผลของโปรแกรมคอมพิวเตอร์ - ออร์กาไนเซชันคอมพิวเตอร์(computer organization) หมายถึง ส่วนประกอบแต่ละส่วนของเครื่องคอมพิวเตอร์ และการเชื่อมต่อเข้ากับส่วนประกอบส่วนอื่นๆ ซึ่งจะเชื่อมต่อเข้าด้วยกัน โดยจะต้องคำนึงถึงข้อกำหนดทางสถาปัตยกรรมของคอมพิวเตอร์ - ชุดคำสั่ง (instruction set) จำนวนบิตข้อมูลที่ใช้ในการสื่อความหมายข้อมูลชนิดต่างๆ(เช่น เลขจำนวนเต็ม หรือตัวอักษร) กลไกสำหรับอุปกรณ์นำเข้าและแสดงผลข้อมูล และเทคนิคที่ใช้ในการกำหนดที่อยู่ในหน่วยความจำ คุณสมบัติทางด้านออร์กาไนเซชันได้แก่ฮาร์ดแวร์ที่เป็นอุปกรณ์ต่างๆ เช่น สัญญาณควบคุมการทำงานช่องติดต่อระหว่างคอมพิวเตอร์และอุปกรณ์ประกอบและเทคโนโลยีที่ใช้ในการสร้างหน่วยความจำ 1.2 โครงสร้างและหน้าที่การทำงาน - โครงสร้างลำดับชั้น หมายถึง กลุ่มของระบบย่อยที่ถูกนำเข้ามาประกอบเข้าด้วยกัน แต่ระบบย่อยก็จะมีลักษณะเป็นโครงสร้างลำดับชั้นของอุปกรณ์ต่างๆซึ่งจะไล่ลงไปจนถึงระดับล่างสุดที่ประกอบด้วยอุปกรณ์พื้นฐานเช่น ทรานชิสเตอร์ตัวหนึ้งหรือสายไฟฟ้าเส้นหนึ่ง ผู้ออกแบบจะต้องรับผิดชอบในสองเรื่องคือ - โครงสร้าง : วิชีการที่อุปกรณ์ต่างๆเชื่อมต่อเข้าด้วยกัน - หน้าที่ : การทำงานของส่วนประกอบแต่ละส่วนในฐานะเป็นส่วนหนึ่งของโครงสร้าง ในด้านการให้คำจำกัดความของระบบคอมพิวเตอร์มีทางเลือกสองทางคือ - การเริ่มต้นจากระดับล่างสุด ไล่ขึ้นมาจนกระทั้งได้คำจำกัดความที่สมบูรณ์ที่ระดับบนสุด - การเริ่มมองจากระดับบนสุดแล้วแยกออกมาที่ส่วนประกอบแต่ละส่วนจนครบถ้วน ระบบคอมพิวเตอร์จะได้รับการอธิบายจากระดับบนสุด โดยเริ่มต้นจากการอธิบายส่วนประกอบหลักๆอธิบายโครงสร้างและหน้าที่ แล้วจึงอธิบายส่วนประกอบย่อยของแต่ละองค์ประกอบหลักไปเรื่อย ตามลำดับโครงสร้างแบบลำดับชั้น หน้าที่การทำงานมีส่วนประกอบ 4 ส่วนคือ · การประมวลผลข้องมูล(Data processing facility) · ส่วนเก็บบันทึกข้อมูล(Data storage facility) · ส่วนการเคลื่อนย้ายข้อมูล(Data movement apparatus) · ส่วนการควบคุม(Control mechanism) คอมคอมพิวเตอร์ต้องมีความสามารถใน - การประมวลผลข้อมูล ข้อมูลอาจอยู่ในหลายรูปแบบทำให้ขอบเขตการประมวลผลข้อมูลนั้นกว้างขวางไปด้วย - การจัดเก็บข้อมูล แม้ว่าเครื่องคอมพิวเตอร์จะทำการประมวลผลข้อมูลในทันทีคือ รับข้อมูลเข้ามา ทำการประมวลผล และส่งข้อมูลออกไปที่อุปกรณ์แสดงผลลัพธ์ - เคลื่อนย้ายข้อมูล จากภายในเครื่องคอม ไปยังหรือมาจากอุปกรณ์อื่นได้ สิ่งแวดล้อมในการทำงานของเครื่องคอมประกอบด้วยอุปกรณ์ที่ทำหน้าที่เป็นทั้งแหล่งที่มาของข้อมูลหรือแหล่งจัดเก็บข้อมูล เมื่อข้อมูลถูกนำมาจากหรือส่งไปที่อุปกรณ์ที่เชื่อมโยงอยู่กับเครื่องคอมโดยตรง กระบวนการนี้จะถูกเรียกว่า ไอโอ(Input/Output or I/O) ส่วนอุปกรณ์จะเรียกว่า อุปกรณ์ต่อพ่วง(peripherals)เมื่อข้อมูลถูกเคลื่อนย้ายในระยะทางไกลจากอุปกรณ์ที่อยู่ไกลออกไปจะเรียกว่า การสื่อสาร(data communication) - การควบคุม หน้าที่การทำงานทั้งสามอย่างนี้ การควบคุมมักจะถูกกระทำผ่านผู้ใช้งานเครื่องคอมโดยใช้คำสั่ง(instruction) ที่ถูกออกแบบมาเฉพาะภายในเครื่องคอม หน่วยควบคุมการทำงาน(control unit) จะจัดการบริหารการใช้งานทรัพยากรต่างๆ โครงสร้างองค์ประกอบที่สำคัญ 4 อย่างคือ · หน่วยประมวลผลกลาง(CPU:Central Processing Unit) · หน่วยความจำหลัก(main memory) · ไอโอ(I/O) · การเชื่อมต่อภายในเครื่องคอม(system interconnection) อุปกรณ์ที่น่าสงใจมากที่สุดและมีความสลับซับซ้อนมากที่สุดคือ หน่วยประมวลผลกลางประกอบด้วยส่วนประกอบดังนี้ · ส่วนควบคุม(Control unit) : ทำหน้าที่ควบคุมการทำงานของซีพียู · ส่วนเอแอลยู(ALU:Arithmetic and Logic unit) : ทำหน้าที่ประมวลผลคำสั่งคณิตศาสตร์และคำสั่งทางตรรกะ · รีจิสเตอร์(registers): เป็นหน่วยบันทึกข้อมูลภายในตัวซีพียู · ส่วนเชื่อมต่อภายในซีพียู(CPU interconnection): กลไกที่ช่วยให้ส่วนประกอบทั้งสามส่วนสามารถสื่อสารระหว่างกันได้ เทคนิคที่นิยมใช้มากที่สุดคือ การใช้ไมโครโปรแกรม โดยสารสำคัญแล้วหน่วยควบคุมที่ใช้ไมโครโปรแกรมนั้นก็คือ การประมวลผลคำสั่งย่อย(microinstruction) 1.3 ทำไมจึงต้องศึกษาเรื่องออร์กาไนเซชันและสถาปัตยกรรม - เครื่องคอมเป็นหัวใจของการคำนวณ ถ้าปราศจากเครื่องคอมแล้ววิชาที่เกี่ยวข้องกับการคำนวณส่วนใหญ่ในปัจจุบัน ก็จะกลายเป็นเพียงส่วนหนึ่งของทฤษฏีทางคณิตศาสตร์ การที่จะเป้นผู้เชี่ยวชาญในการคำนวณแขนงใดปัจจุบันก็ตาม 1.4 แนวทางการนำเสนอของหนังสือเล่มนี้ 1. นำเสนอภาพรวมของออร์กาไนเซชันคอม และสถาปัตยกรรมคอมและอธิบายหัวข้อที่ใช้ในการพิจารณาในการออกแบบเครื่องคอม 2. กล่าวถึงส่วนประกอบหลักของคอม และการเชื่อมโยงระหว่างกันทั้งระหว่างอุปกรณ์ด้วยกันเองละกับอุปกรณ์ภายนอน 3. อธิบายสถาปัตยกรรมภายใน และออร์กาไนเซชันของหน่วยประมวลผล
บทที่ 9 วิธีการคำนวณทางคณิตศาสตร์ของเครื่องคอมพิวเตอร์ ประเด็นสำคัญ คือ วิธีการหรือรูปแบบตัวแทนของข้อมูลตัวเลขและอัลกอริทึมสำหรับการคำนวณทางคณิตศาสตร์เบื้องต้น โปรเซสเซอร์มาตรฐานส่วนมากใช้ IEEE 754
9.1 ALU บทนี้จะอธิบายฟังก์ชันทางตรรกะที่เป็นส่วนหนึ่งของเอแอลยู การประมวลผลคณิตศาสตร์ของคอมพิวเตอร์ กระทำกับข้อมูลตัวเลขจำนวนเต็มและจำนวนจริง เอแอลยูจึงเป็นส่วนแกนหลักของระบบคอมพิวเตอร์ ข้อมูลจะถูกส่งเข้าสู่หน่วยเอแอลยูผ่านรีจิสเตอร์และผลลัพธ์จะถูกส่งกลับไว้รีจิสเตอร์ รีจิสเตอร์เหล่านี้คื่อทีเก็บข้อมูลชั่วคราวอยู่ภายในโปรเซสเซอร์
9.2 รูปแบบตัวแทนของเลขจำนวนเต็ม การประมวลผลนั้น เครื่องหมายติดลบและจุดทศนิยมไม่ได้ประโยชน์แต่อย่างใดดังนั้นจึงใช้เลขฐาน 2 คือ 0 และ 1 รูปแบบที่มีเครื่องหมายกำกับ บิตที่อยู่ซ้ายสุด ถ้าเป็น 0 แสดงว่าเป็น + 1 แสดงว่าเป็น แต่มีปัญหาเกิดขึ้น จึงไม่ได้รับความนิยม รูปแบบตัวแทนทูคอมพลีเมนต์ นำบิตที่มีค่าสูงสุดของเลขฐานสองมาใช้เป็นบิตเครื่องหมาย เพื่อช่วยห้ารตรวจสอบว่าเลขจำนวนนั้นเป็นบวกหรือลบ เลข 0 จะเป็นบวกเท่านั้น วิธีการนี้สามารถสนับสนุนการทำงานฟังก์ชันคณิตศาสตร์พื้นฐานจึงมาใช้อย่างกว้างขวาง การแปลงระหว่างข้อมูลที่มีจำนวนบิตไม่เท่ากัน โดยย้ายบิตเครื่องหมายไปไว้บิตซ้ายสุด แต่ไม่สามารถมาใช้กับทูคอมพรีเมนต์ได้ รูแบบตัวแทนเลข Fixed-point เลขจำนวนจริงที่บอกไปนั้น
เน็กเกชัน คือการสลับบิต ในทูคอมพรีเมนต์มี 2 ขั้นตอนดังนี้ 1. เปลี่ยนบิตให้เป็นบิตตรงกันข้าม 2. ให้บวก 1 ที่บิตขวาสุด
การบวกและการลบ บวกตามปกติ การคูณ เลขไม่มีเครื่องหมาย คูณแนวตั้งปกติ การูณเลขทูคอมพรีเมนต์ เหมือนกาน (แต่ไม่เข้าใจว่ะ เห้อๆๆๆ) การหาร หารยาวที่กระทำกับเลขแบบไม่มีเครื่องหมายบิตจากซ้ายไปขวา 9.4 รูปแบบตัวแทนเลขจำนวณจริง พื้นฐานความเข้าใจ สิ่งสำคัญคือ รูปแบบของเลขจำนวณจริงไม่เพิ่มจำนวนตัวเลขที่ระบบจะสามารถใช้แทนได้ ข้อได้เปรียบการใช้เลขฐานขนาดใหญ่คือ ความสามารถในการแสดงรูปแบบตัวแทนตัวเลขที่มีขอบเขตหรือจำนวนมากยิ่งขึ้น
มาตรฐาน IEEE สำหรับรูปแบบแทนเลขจำนวนจริง กำหนดไว้สำหรับทั้งตัวเลขขนาด 2 บิตและ 64 บิต และไม่ได้แปลความหมายของบิตทุกบิตเหมือนกับรูปแบบทั่วไป กล่าวคือบิตบางส่วนถูกกำหนดให้มีความหมายเป็นอย่างอื่น
9.5 การคำนวณคณิตศาสตร์ของเลขจำนวนจริง (เห้อๆๆๆ) การพิจารณาความเที่ยงตรง เห้อยกกำลัง 2 การปัดเศษ มี 4 วิธี ปัดเศษไปยังค่าที่ใกล้เคียง,ไปทางจำนวนบวกอนันต์,ลบอนันต์,จำนวน 0 สัญลักษณ์ NaN หมายถึง รหัสรูแบบจำนวนจริง November 26 Unit 10 HoMeWoRk NoT FiNiShOperand Operand นี้แตกต่างกันขึ้นอยู่กับชนิดของคำสั่งนั้น ๆ ถ้ามีหลายตัวก็คั่นด้วย , (COMMA) ชนิดของ Operand แบ่งได้ดังนี้
4) Operand ที่ Reference กับตัวเอง ใช้เครื่องหมาย “ * ” จะหมายถึงตำแหน่งของตัวเอง ตาม Location Counter ในขณะนั้น (Current Location Counter) เช่น
June 26 น้องเหมียว"" |
|
|||||||||||||
|
|