GPU / CPU สื่อสารกับจอแสดงผลมาตรฐานอย่างไร (HDMI / DVI / ฯลฯ ) [ปิด]


14

ฉันสนใจที่ข้อมูล cpu / gpu นำเสนอ (ไปยังอุปกรณ์ใดก็ตามที่มันทำ) ข้อมูลวิดีโอหลังจากประมวลผลแล้ว

ฉันได้รับแจ้งว่า CPU / GPU ประมวลผลวิดีโอจากนั้นส่งไปยังวงจรรวมด้วยอนุกรมความเร็วสูงที่แปลงสัญญาณอนุกรมเป็นเอาต์พุตที่เหมาะสม แต่ฉันไม่สามารถยืนยันได้ด้วยการค้นหาออนไลน์

ฉันสนใจในการส่งสัญญาณและไม่สามารถค้นหาโปรโตคอล / ฯลฯ ได้เพราะฉันไม่รู้ว่ามันคืออะไร ดังนั้น CPU / GPU โต้ตอบกับเอาต์พุตวิดีโอโดยตรง (ฉันสามารถค้นหาโปรโตคอลเหล่านี้ได้อย่างง่ายดาย) หรือมี "คนกลาง" เพื่อพูดและถ้าเป็นเช่นนั้นชนิดของชิป / etc?


คุณสามารถซื้อ RAMDAC วิดีโอเป็นส่วนที่แตกต่าง: ti.com.cn/cn/lit/ds/symlink/tvp3703.pdfแม้ว่านั่นไม่ได้หมายความว่ามันจะแยกออกจากการ์ดกราฟิกของคุณ
pjc50

คำตอบ:


18

ภาพที่ปรากฏบนจอภาพจะถูกเก็บไว้ในวิดีโอแรมของคอมพิวเตอร์ของคุณบนกราฟิกการ์ดในโครงสร้างที่เรียกว่า framebuffer ข้อมูลใน framebuffer โดยทั่วไปคือสี RGB 24 บิตดังนั้นจะมีหนึ่งไบต์สำหรับสีแดงหนึ่งสำหรับสีเขียวและหนึ่งสำหรับสีน้ำเงินสำหรับแต่ละพิกเซลบนจอแสดงผลอาจมีบางส่วนเสริม padding ข้อมูลใน RAM วิดีโอสามารถสร้างได้โดย GPU หรือ CPU Video RAM อ่านอย่างต่อเนื่องโดยส่วนประกอบ DMA เฉพาะบนการ์ดวิดีโอและส่งไปยังจอภาพ สัญญาณที่ส่งออกไปยังจอภาพเป็นสัญญาณอะนาล็อก (VGA) ที่ส่วนประกอบสีจะถูกส่งผ่านตัวแปลงสัญญาณดิจิตอลเป็นอนาล็อกก่อนออกจากการ์ดหรือสัญญาณดิจิตอลในกรณีของ DVI, HDMI หรือ DisplayPort ฮาร์ดแวร์ที่รับผิดชอบในเรื่องนี้ยังสร้างสัญญาณซิงค์แนวนอนและแนวตั้งรวมถึงความล่าช้าที่เหมาะสมทั้งหมดดังนั้นข้อมูลภาพจะถูกส่งไปยังจอภาพเมื่อพร้อมเท่านั้น ใน DVI และ HDMI กระแสข้อมูลสีพิกเซลจะถูกเข้ารหัสและต่อเนื่องและส่งผ่าน TMDS (การส่งสัญญาณที่แตกต่างกันลดลง) ไปยังจอภาพ DisplayPort ใช้การเข้ารหัส 8b / 10b การเข้ารหัสรองรับหลายวัตถุประสงค์ อันดับแรก TMDS ลดการเปลี่ยนสัญญาณเพื่อลดการปล่อย EMI ประการที่สองทั้ง TMDS และ 8b / 10b เป็นโปรโตคอลสมดุล DC ดังนั้นตัวเก็บประจุ DC Block สามารถใช้เพื่อกำจัดปัญหาเกี่ยวกับลูปกราวด์ ประการที่สาม 8b / 10b ทำให้แน่ใจว่ามีความหนาแน่นของการเปลี่ยนแปลงสูงพอที่จะเปิดใช้งานการกู้คืนนาฬิกาที่ตัวรับสัญญาณเนื่องจาก DisplayPort ไม่กระจายนาฬิกาแยกต่างหาก สตรีมของข้อมูลสีพิกเซลถูกเข้ารหัสและต่อเนื่องและส่งผ่าน TMDS (การส่งสัญญาณที่แตกต่างกันลดลง) ไปยังจอภาพ DisplayPort ใช้การเข้ารหัส 8b / 10b การเข้ารหัสรองรับหลายวัตถุประสงค์ อันดับแรก TMDS ลดการเปลี่ยนสัญญาณเพื่อลดการปล่อย EMI ประการที่สองทั้ง TMDS และ 8b / 10b เป็นโปรโตคอลสมดุล DC ดังนั้นตัวเก็บประจุ DC Block สามารถใช้เพื่อกำจัดปัญหาเกี่ยวกับลูปกราวด์ ประการที่สาม 8b / 10b ทำให้แน่ใจว่ามีความหนาแน่นของการเปลี่ยนแปลงสูงพอที่จะเปิดใช้งานการกู้คืนนาฬิกาที่ตัวรับสัญญาณเนื่องจาก DisplayPort ไม่กระจายนาฬิกาแยกต่างหาก สตรีมของข้อมูลสีพิกเซลถูกเข้ารหัสและต่อเนื่องและส่งผ่าน TMDS (การส่งสัญญาณที่แตกต่างกันลดลง) ไปยังจอภาพ DisplayPort ใช้การเข้ารหัส 8b / 10b การเข้ารหัสรองรับหลายวัตถุประสงค์ อันดับแรก TMDS ลดการเปลี่ยนสัญญาณเพื่อลดการปล่อย EMI ประการที่สองทั้ง TMDS และ 8b / 10b เป็นโปรโตคอลสมดุล DC ดังนั้นตัวเก็บประจุบล็อก DC สามารถใช้เพื่อกำจัดปัญหาเกี่ยวกับลูปกราวด์ ประการที่สาม 8b / 10b ทำให้แน่ใจว่ามีความหนาแน่นของการเปลี่ยนแปลงสูงพอที่จะเปิดใช้การกู้คืนนาฬิกาที่ตัวรับสัญญาณเนื่องจาก DisplayPort ไม่ได้กระจายนาฬิกาแยกต่างหาก

นอกจากนี้สำหรับ HDMI และ DisplayPort ข้อมูลเสียงจะถูกส่งไปยังการ์ดกราฟิกเพื่อส่งไปยังจอภาพ ข้อมูลนี้ถูกแทรกลงในการหยุดชั่วคราวในกระแสข้อมูลระหว่างเฟรมวิดีโอ ในกรณีนี้การ์ดวิดีโอจะแสดงตัวเองเป็นอ่างเสียงไปยังระบบปฏิบัติการและข้อมูลเสียงจะถูกโอนผ่าน DMA ไปยังการ์ดเพื่อรวมกับข้อมูลวิดีโอ

ตอนนี้คุณคงทราบแล้วว่าสำหรับการแสดงผลขนาด 1920x1080 ด้วย 4 ไบต์ต่อพิกเซลคุณต้องใช้เพียงประมาณ 8 MB ในการจัดเก็บภาพ แต่ RAM วิดีโอในคอมพิวเตอร์ของคุณอาจมีขนาดที่เท่ากัน นี่เป็นเพราะวิดีโอแรมไม่ได้มีไว้สำหรับเก็บเฟรมเฟรมเท่านั้น หน่วยความจำวิดีโอเชื่อมต่อโดยตรงกับ GPU ซึ่งเป็นหน่วยประมวลผลพิเศษที่ออกแบบมาเพื่อการเรนเดอร์ 3D ที่มีประสิทธิภาพและการถอดรหัสวิดีโอ GPU ใช้การเข้าถึงโดยตรงไปยัง RAM วิดีโอเพื่อเร่งกระบวนการเรนเดอร์ ในความเป็นจริงการรับข้อมูลจากหน่วยความจำหลักลงในหน่วยความจำวิดีโอนั้นเป็นปัญหาคอขวดเนื่องจากบัส PCI ที่เชื่อมต่อการ์ดวิดีโอกับ CPU และหน่วยความจำหลักนั้นช้ากว่าการเชื่อมต่อระหว่าง GPU และ RAM วิดีโอ


7

หน้าจอแสดงผลที่ทันสมัยต่างๆเป็นบิตบิทสตรีมแบบอนุกรม บิตเรตนั้นสูงเกินไปสำหรับตัวประมวลผล (หรือหากสามารถติดตามได้จะเรียกร้องเวลาประมวลผลมากเกินไป) หน่วยความจำชิ้นหนึ่งถูกตั้งค่าไว้เพื่อให้มีบิตของภาพ ฮาร์ดแวร์เฉพาะชิ้นส่วนจะอ่านเนื้อหาหน่วยความจำและสตรีมออกมา งานชิ้นนี้คล้ายกับตัวควบคุม DMA และจริง ๆ แล้วค่อนข้างง่าย มันเป็นเพียงส่วนเล็ก ๆ ของ GPU ที่ทันสมัยซึ่งส่วนใหญ่เกี่ยวข้องกับการสร้างภาพในหน่วยความจำจากคำสั่ง GPU ระดับสูง

หน่วยความจำที่มีภาพวิดีโอสามารถเป็นส่วนหนึ่งของหน่วยความจำหลัก (ถูก) หรือหน่วยความจำเฉพาะที่สามารถเข้าถึงได้โดย 'DMA' และ CPU และ / หรือ GPU ต้องกำหนดค่า 'DMA' ด้วยพารามิเตอร์ต่าง ๆ เช่นความกว้างและความสูงของพิกเซล, ความลึกของสี, ตำแหน่งเริ่มต้นในหน่วยความจำเป็นต้น

ในคอมพิวเตอร์สมัยใหม่ GPU เป็นโปรเซสเซอร์ (พิเศษมาก) ที่แข่งขันกับความเร็วของ CPU หลัก (และสูงกว่าบนสนามหญ้าของตัวเอง) มันทำสิ่งต่าง ๆ เช่นสร้างภาพ psuido-3D จากวัตถุ 3 มิติที่มีพื้นผิวและแหล่งกำเนิดแสง ทั้งหมดนี้สามารถทำได้ภายในหน่วยความจำวิดีโอโดย GPU CPU เพียงแค่ส่งมอบวัตถุพื้นผิวและแหล่งกำเนิดแสง

การอ่านข้อมูลวิดีโอจากหน่วยความจำและเลื่อนออกเป็นกระบวนการที่ค่อนข้างง่าย แต่ต้องทำอย่างรวดเร็วและตลอดเวลา ดังนั้นงานนี้เหมาะสำหรับฮาร์ดแวร์เฉพาะและไม่เหมาะกับซีพียู AFAIK คอมพิวเตอร์ล่าสุดที่มี CPU ที่เกี่ยวข้องในการสร้างสัญญาณวิดีโอคือ ZX80 / 81 และ Spectrum ในบรรดาซีพียูสามารถทำงานของตัวเองได้เฉพาะในช่วงเวลาแนวตั้ง (แนวตั้ง?)


1
นี่คือข้อมูลที่ดี ดังนั้นคอนโทรลเลอร์ DMA (หรือฮาร์ดแวร์ที่คล้ายกัน) จึงเข้าถึงหน่วยความจำวิดีโอโดยตรงหรือไม่ และในระบบที่มีกราฟิกรวมที่ใช้ RAM ระบบมันเข้าถึง RAM ระบบโดยตรงหรือไม่ ขออภัยในความเรียบง่ายของคำถามของฉัน ฉันเป็น DIY'er ตัวใหญ่ดังนั้นฉันจึงมักจะกระโดดลงไปในระดับที่สูงขึ้นด้วยความรู้ระดับต่ำ :)
Craig Lafferty

และเพื่อติดตามตัวควบคุมรู้ได้อย่างไรว่าที่อยู่ใดใน RAM เพื่อ "ขโมย" เฟรมจาก เฟรม / บิตแมปจะถูกแทนที่อย่างรวดเร็วและเคลื่อนไปรอบ ๆ ฉันถือว่า
Craig Lafferty

ความคิดเห็นล่าสุดของคุณถูกต้อง: มันเก็บไว้ในframebufferและสำหรับวิดีโออนาล็อกจะถูกส่งผ่านไปยังRAMDAC ที่อยู่ framebuffer อาจได้รับการแก้ไขหรือระบุในการลงทะเบียนควบคุม มีเทคนิคต่าง ๆ ที่เกี่ยวข้องกับการแลกเปลี่ยนเฟรมเฟรมระหว่างหรือระหว่างเฟรมหรือในบางระบบ (เอมิ) การเปลี่ยนโหมดวิดีโอลงครึ่งหนึ่งของเฟรม
pjc50

ทำไมโปรเซสเซอร์จึงช้าลง? มันไม่ได้มีการประมวลผลวิดีโอเพื่อให้ตัวควบคุมเพื่อให้สามารถใช้งานได้หรือไม่ ฉันจะเดาอีกครั้งที่นี่และบอกว่าคอนโทรลเลอร์อ่าน RAM ซ้ำแล้วซ้ำอีกและ CPU / GPU จะอัปเดต RAM ด้วยข้อมูลการแสดงผลใหม่เมื่อมีบางสิ่งเปลี่ยนแปลงดังนั้นตัวอย่างเช่น GPU จะทำให้หน้าจอปัจจุบันของฉันเป็น RAM ของมันและเมื่อฉันเลื่อนเคอร์เซอร์มันจะอัพเดตพิกเซลที่มีการเปลี่ยนแปลง ในขณะเดียวกันตัวควบคุมจะอ่าน RAM 60 หรือมากกว่านั้นเป็นวินาที (ชนิดมาตรฐาน FR ฉันเดา)
Craig Lafferty

1
Video RAM ไม่เพียง แต่ใช้สำหรับจัดเก็บภาพที่แสดงเท่านั้น แต่ยังใช้ภายในโดย GPU เพื่อจัดเก็บข้อมูลฉากซึ่งแสดงผลลงใน framebuffer สิ่งนี้อาจใช้พื้นที่มากเนื่องจาก GPU ต้องการการเข้าถึงรายละเอียด 3D ของวัตถุพร้อมกับข้อมูลพื้นผิวทั้งหมดสำหรับพื้นผิว
alex.forencich
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.