User Tools

Site Tools


coa:faq

คำถามที่พบบ่อยในวิชา COA

* memory กับ hard disk ไม่ใช่อันเดียวกันเหรอ

  1. - โดยทั่วไป ไม่ใช่ memory ทำงานกับ cpu โดยตรง ส่วน hard disk จะถูก accessed ผ่าน I/O

* ใน pipeline ทำไมถึงพูดถึง instruction memory กับ data memory. Memory ไม่ได้มีอันเดียวเหรอ

  1. - (1) มันขึ้นกับออกแบบ (2) เขามักออกแบบ hierarchy หมายถึง main memory เก็บทุกอย่าง (“อันเดียว”) แต่จะส่วนของข้อมูลที่กำลังจะใช้ถูกโหลดเข้า data memory (หรืออาจเรียก data cache) แบบเดียวกับส่วนที่เป็นคำสั่งที่กำลังจะใช้จะถูกโหลดเข้า instruction memory (instruction cache)

* โปรแกรม อยู่ใน hard disk หรืออยู่ใน memory กันแน่

  1. - เก็บถาวรใน hard disk แต่เวลาจะใช้ต้องอยู่ใน memory คือโหลดมาเข้า memory ตอนจะใช้

* ตกลง hard disk เป็น memory หรือเป็น I/O

  1. - เป็นอุปกรณ์ I/O โดย access แบบ I/O แต่ทำงานเก็บข้อมูล/คำสั่ง ที่จะถูกโหลดไปเข้า main memory (หรือถูกย้ายโดย DMA)

* tri-state bus มีประโยชน์อะไร

  1. - ถ้ามีอุปกรณ์ต่อ bus อยู่สามตัว เรียก A, B และ C ถ้า A กับ B เป็นตัวส่ง C เป็นตัวรับ ถ้า A จะส่ง “111…1” ไปให้ C ถ้า B ไม่อยู่ในสถานะ Z (high impedance เหมือนตัดวงจรออก) ไม่ว่า B มีค่าเป็นอะไร (ยกเว้น ค่าตรงกับ A เป๊ะ) B กับ A จะ short กัน (เช่น A ออก 1 แล้ว B เป็น 0 ก็เหมือนเอา ขั้วบวกแบต จิ้มกับขั้วลบแบต น่ะครับ /ปล อันตรายนะครับ อย่าทำ!)

* bus คือ อะไร

  1. - กลุ่มสายสัญญาณ ที่มันจะใช้ร่วมกันสำหรับอุปกรณ์หลาย ๆ ตัว

* address มีประโยชน์อะไร

  1. - เป็นเหมือนเลขประจำตัว ถ้าเป็น address ของอุปกรณ์จะได้รู้ว่า อ้างถึงอุปกรณ์ตัวไหน ถ้าเป็น memory จะได้รู้ว่า อ้างถึงข้อมูล byte ไหน (หรือ กลุ่ม cells ไหนใน memory cell array)

* cache กับ memory มันต่างกันยังไง

  1. - cache เป็น คำที่มักใช้เรียก memory ที่ใน hierarchy และอยู่ใกล้ cpu มากกว่า ทำงานเร็วกว่า

* pipeline มีประโยชน์อะไร

  1. - ก็ถ้า 1 คำสั่งมีงานย่อย ๆ ต้องทำหลายงาน หลาย ๆ ครั้งไม่จำเป็นต้องรอให้คำสั่งแรกเสร็จทุกงานย่อย ค่อยเริ่มทำคำสั่งที่สองก็ได้ แบบเดียวกัน; เหมือนพ่อครัว ทอดปลาอยู่ แต่มีดว่าง ก็หั่นกระเทียมรอซิ พอทอดปลาเสร็จ จะได้เอากระเทียมลงผัดได้เลย

* pipeline มันจะไม่ทำให้มั่วเหรอ

  1. - ก็ขึ้นกับการจัดการไงครับ ถึงต้องเรียนว่าจะจัดการยังไง

* pipeline คือ parallel computing ใช่มั้ย

  1. - กึ่ง ๆ แต่ไม่ใช่ parallel computing เต็มที่

* คอมพิวเตอร์มันจะรู้ได้ยังไงว่า ไอ้ที่เก็บใน memory เป็น instruction หรือ data หรือถ้าเป็น data มันจะรู้ได้ยังไงว่า เป็นตัวเลข หรือ ascii

  1. - ไม่รู้ ขึ้นกับเอาไปใช่ ถ้าเอาไปรัน ข้อมูลก็ทำหน้าที่เป็น instruction ถ้าเอาไปใช้เป็น data มันก็เหมือนเป็น data และมันก็ไม่รู้ว่า เป็นตัวเลข หรือ ascii ถ้าเอาไปใช้เป็นตัวเลข มันก็ทำหน้าที่เป็นตัวเลข ถ้าเอาไป display (encode เป็น ascii) มันก็จะแสดงเป็น ascii.

* เวลารัน assembly มัน call function ไปแล้ว มันจะกลับมาได้ยังไง

  1. - ตอน call ไป มันก็ต้องเก็บ address ที่จะกลับมา ไว้ก่อนไงครับ

* stack มันอยู่ตรงไหน

  1. - อยู่ใน memory ที่เราจัดที่ไว้ให้

* os กับ compiler ใครเกิดก่อนกัน

  1. - (1) โดยทฤษฎี เราเขียน os จาก assembly หรือแม้แต่จาก machine code ได้ แต่โครตยาก (2) compiler ไม่ได้ต้องการ os (ยกเว้น เราจะโหลด os library เช่น include os) และเราก็เขียน compiler จาก assembly หรือ machine code ได้; ประวัติศาสตร์ เป็นยังไง ไปหาดูได้ครับ แต่ถ้ามนุษย์ยุคหินจะเริ่ม ผมว่า เริ่มจาก compiler จะง่ายกว่ามั้ง
coa/faq.txt · Last modified: 2025/09/30 11:38 by tatpong_katanyukul

Page Tools