ไดรเวอร์หน้าจอของฉันจัดการกับข้อมูลจำนวนมากได้อย่างไร


61

ฉันเพิ่งทำการคำนวณอย่างรวดเร็ว:

บน MacBook ของฉันฉันมีความละเอียด2560x1440คูณด้วย24 บิตสำหรับสีที่เราได้รับ11.05MBสำหรับภาพเดียวหรือ663MBต่อวินาทีที่60 เฟรมต่อวินาที

ฉันเดาว่ามีการบีบอัดบางอย่าง แต่ตัวอย่างเช่นเมื่อฉันเลื่อนด้วยสามนิ้วบนทัชแพดของฉันที่ค่อนข้างสุ่มเกิดอะไรขึ้นต่อไปบนหน้าจอและเกือบทุกพิกเซลจะเปลี่ยน เช่นเดียวกับการมีปฏิสัมพันธ์เกือบทุกครั้งอื่น ๆ

โปรดอธิบายว่าการคำนวณของฉันผิดหรือไม่และข้อมูลนี้ถูกขนส่งจากกราฟิกการ์ดไปยังหน้าจอของฉันอย่างไร รถบัสระหว่างการ์ดกราฟิกและหน้าจอของฉันมีความกว้างเท่าใด อาจอธิบายสั้น ๆ ว่าจอแสดงผลจัดเก็บพิกเซลได้อย่างไร ลงทะเบียน Shift หรือไม่ แคช?


7
"อาจอธิบายสั้น ๆ ว่าจอแสดงผลจัดเก็บพิกเซลได้อย่างไร" จอแสดงผลไม่ได้เก็บข้อมูลพิกเซลจริง ๆ นั่นคือทั้งหมดที่จัดการโดย RAM บนการ์ดกราฟิก (หรือ RAM ระบบสำหรับกราฟิกในตัว) RAM มีแบนด์วิดท์หลาย GB / s อย่างง่ายดาย เฟรมจะถูกส่งไปยังจอแสดงผลตามโปรโตคอลเพื่อให้มีข้อมูลตามที่จำเป็นสำหรับการแสดงผล
ks0ze

3
ทำไมคุณคิดว่ามีการบีบอัดข้อมูล คุณคิดอย่างไรกับข้อมูลที่ไม่สามารถบีบอัดได้ คุณคิดว่าจอแสดงผลตกหล่นหรือไม่
Mehrdad

3
@Aresloom: อ่าฉันเข้าใจแล้ว การบีบอัดแบบ Lossy จะเป็นทางเดียวใช่ :) ฉันคิดว่าคุณกำลังคิดที่จะสูญเสีย!
Mehrdad

2
@ ks0ze แผงที่ใหม่กว่าบางหน้าจอจะเก็บหน้าจอสุดท้ายที่ส่ง การแคชที่นั่นจะใช้พลังงานน้อยกว่า GPU ที่บีบอัดภาพนิ่งออกมา 60 ครั้งต่อวินาที anandtech.com/show/7208/understanding-panel-self-refresh
Dan Neely

2
จอแสดงผลแล็ปท็อปที่ทันสมัยยังคงใช้ LVDS อยู่หรือไม่? กว่าครึ่งโหลที่ผ่านมา บริษัท GPU กำลังวางแผนที่จะเลิกใช้งานในเวลาเดียวกันกับ VGA (ซึ่งหายไปจากการส่งออกดั้งเดิมของ GPU ในปัจจุบัน) เพื่อสนับสนุนการแสดงผลแบบฝังตัว
Dan Neely

คำตอบ:


70

การคำนวณของคุณถูกต้องในสาระสำคัญ สำหรับสัญญาณ 1440p60Hz คุณจะมีอัตราการส่งข้อมูลที่ 5.8Gbps เมื่อคุณอนุญาตให้ใช้เวลาว่างเช่นกัน (เส้นขอบพิกเซลที่มองไม่เห็นในเอาต์พุตภาพ)

สำหรับ HDMI / DVI จะใช้การเข้ารหัส 10 / 8b ซึ่งหมายความว่ามีประสิทธิภาพแม้ว่าคุณจะพูด 24 บิตของข้อมูลสีต่อพิกเซลจริง ๆ แล้ว 30 บิตจะถูกส่งเมื่อมีการเข้ารหัสข้อมูลและเพิ่มคำควบคุมโปรโตคอล ไม่มีการบีบอัดเลยข้อมูลดิบจะถูกส่งดังนั้นหมายความว่าคุณต้องการแบนด์วิดธ์ข้อมูล7.25Gbps

ดู HDMI / DVI อีกครั้ง ใช้มาตรฐานการส่งสัญญาณ "TDMS" สำหรับการถ่ายโอนข้อมูล มาตรฐาน HDMI V1.2 มอบอำนาจสูงสุด4.9Gbpsสำหรับ Single-Link (3 สายข้อมูลอนุกรม + 1 นาฬิกาสาย) หรือในกรณีของ Dual-Link DVI สูงสุด9.8Gbps (6 สายข้อมูลอนุกรมผมคิดว่า ) ดังนั้นจึงมีแบนด์วิดท์เพียงพอที่จะทำ 1440p60 ผ่าน DVI Dual-Link แต่ไม่ผ่าน HDMI V1.2

ในมาตรฐาน HDMI V1.3 (อุปกรณ์ส่วนใหญ่ข้ามไปเป็น V1.4a ซึ่งเป็นแบนด์วิดธ์เดียวกับ 1.3) แบนด์วิดท์นั้นเพิ่มขึ้นประมาณ 10Gbps ซึ่งจะรองรับ 1440p60 และแบนด์วิดท์เพียงพอสำหรับ UHD ที่ 30Hz (2160p30)

DisplayPort เป็นอีกตัวอย่างหนึ่งมีสตรีมข้อมูลแบบอนุกรม 4 สตรีมแต่ละอัน (ใน V1.1) ที่2.16Gbpsต่อสตรีม (การบัญชีสำหรับการเข้ารหัส) ดังนั้นด้วยลิงก์ V1.1 คุณสามารถทำ 1440p60 ได้อย่างง่ายดายด้วยสตรีมทั้งหมด 4 สตรีม พวกเขายังปล่อยมาตรฐานใหม่ที่ใหม่กว่า V1.2 ซึ่งเพิ่มเป็นสองเท่าที่4.32Gbps / สตรีมที่อนุญาตให้ใช้ UHD @ 60Hz ยังมีเวอร์ชั่นใหม่ที่ยังคงผลักดันให้6.4Gbps / สตรีมยิ่งขึ้นไปอีก


เริ่มแรกตัวเลขเหล่านั้นฟังดูใหญ่ แต่จริงๆแล้วไม่มากเมื่อคุณพิจารณา USB 3.0 ที่ถูกปล่อยออกมาด้วยอัตราข้อมูล 5Gbps ผ่านสายเคเบิลเพียงเส้นเดียว (อันที่จริงแล้วสองอันสำหรับ TX หนึ่งอันสำหรับ RX แต่ฉันพูดนอกเรื่อง) PCIe ซึ่งเป็นสิ่งที่การ์ดกราฟิกของคุณใช้ในปัจจุบันทำงานที่สูงถึง 8Gbps ผ่านคู่ที่ต่างกันดังนั้นจึงไม่ใช่เรื่องที่น่าแปลกใจเลยที่อินเตอร์เฟซข้อมูลภายนอกจะทัน


แต่คำถามยังคงอยู่ทำอย่างไร? เมื่อคุณคิดถึง VGA นั่นประกอบด้วยสายไฟเดี่ยวสำหรับข้อมูล R, G และ B ซึ่งจะถูกส่งในรูปแบบอะนาล็อก อะนาล็อกที่เรารู้ว่าเป็นอย่างสูงที่ไวต่อเสียงและการส่งผ่านของ DAC / ADCs ยังถูก จำกัด เพื่อให้หนาแน่น จำกัด สิ่งที่คุณสามารถผลักดันผ่านพวกเขา (มีกล่าวว่าคุณสามารถแทบจะไม่ทำ 1440p60Hz มากกว่า VGA ถ้าคุณโชคดี)

อย่างไรก็ตามด้วยมาตรฐานที่ทันสมัยเราใช้มาตรฐานดิจิทัลซึ่งมีภูมิคุ้มกันต่อเสียงรบกวนมากกว่า (คุณเพียงแค่ต้องแยกความแตกต่างระหว่างสูงหรือต่ำมากกว่าค่าทุกค่าในระหว่าง) และคุณไม่จำเป็นต้องมีการแปลงระหว่างอะนาล็อกและดิจิตอล

นอกจากนี้การถือกำเนิดของการใช้มาตรฐานที่แตกต่างกันในช่วงปลายเดียวช่วยได้อย่างมีนัยสำคัญเพราะตอนนี้คุณกำลังเปรียบเทียบค่าระหว่างสายสองเส้น (+ ve difference = 1, -ve difference = 0) แทนที่จะเปรียบเทียบสายเดี่ยวกับเกณฑ์บางอย่าง ซึ่งหมายความว่าการลดทอนของปัญหาน้อยลงเพราะมันมีผลต่อทั้งสองสายอย่างเท่าเทียมกันและลดทอนลงไปที่แรงดันไฟฟ้าที่จุดกึ่งกลาง - "ตา" (ความต่างของแรงดันไฟฟ้า) มีขนาดเล็กลง แต่คุณยังสามารถบอกได้ว่า ถ้าเป็นเพียง 100mV หรือน้อยกว่า สัญญาณสิ้นสุดเดียวเมื่อสัญญาณลดทอนสัญญาณอาจลดลงต่ำกว่าขีด จำกัด ของคุณและแยกไม่ออกแม้ว่าจะยังมีแอมพลิจูด 1V หรือใหญ่กว่าก็ตาม

โดยใช้การเชื่อมต่อแบบอนุกรมมากกว่าหนึ่งขนานเรายังสามารถไปที่อัตราการส่งข้อมูลที่เร็วขึ้นเพราะเอียงไม่เป็นปัญหา ในบัสขนานที่มีความกว้าง 32 บิตคุณจำเป็นต้องจับคู่ความยาวและลักษณะการแพร่กระจายของสายเคเบิล 32 เส้นอย่างสมบูรณ์เพื่อที่สัญญาณจะไม่เคลื่อนที่ออกจากเฟสจากกันและกัน (เอียง) ในลิงก์อนุกรมคุณมีเพียงสายเคเบิลเส้นเดียวดังนั้นจึงไม่สามารถเกิดการเอียงได้


TL; DRข้อมูลจะถูกส่งในอัตราบิตเต็มที่คุณคำนวณ (หลาย Gbps) โดยไม่มีการบีบอัด เทคนิคการส่งสัญญาณที่ทันสมัยของการเชื่อมโยงดิจิตอลที่เป็นอนุกรมมากกว่าคู่ที่แตกต่างทำให้เป็นไปได้


นอกจากนี้ฉันคิดว่าหน้าจอ HDMI บางตัวใช้ลิงก์ HDMI 1.2v 2 ตัวเพื่อรับภาพโดยแบ่งหน้าจอออกเป็น 2 อย่างซึ่งจะให้แบนด์วิดท์รวม 9.8Gbps เป็นหลัก
Ismael Miguel

5
@Areloom 5GHz เป็นจุดที่ซีพียูทั้งหมดเริ่มละลายเนื่องจากจำนวนทรานซิสเตอร์ที่สลับกันพร้อมกันและสร้างความร้อนจำนวนมาก ไม่ได้หมายความว่า 5GHz เป็นนาฬิกาที่สูงที่สุดสำหรับทุกสิ่งมันลงมาสู่ความร้อน (และวัสดุที่คุณใช้ - ซิลิคอนไม่ดีที่สุดเสมอไป) ตัวอย่างที่ดีที่สุดที่ฉันนึกได้คือ Keysight Infinnium DSAX96204Q ซึ่งปลายด้านหน้าทั้งสี่ด้านนั้นมีตัวอย่างอินเดียมฟอสไฟด์ที่มีความเร็ว 80GHz! แต่ตัวอย่างนั้นมีทรานซิสเตอร์อยู่สองสามตัวเท่านั้นและมันจะเผาผลาญวัตต์ได้หลายตัว (ซีพียูสมัยใหม่มีพันล้าน )
Sam

4
@Areloom 340MHz จะเป็นอัตรานาฬิกา, อัตราการส่งข้อมูลเป็นอนุกรมเช่นนั้น (ใน TDMS ตัวอย่าง) 10 บิตจะถูกส่งบนสายเคเบิลในแต่ละรอบนาฬิกา - ดังนั้นนาฬิกา 340MHz จะให้ 3.4Gbps เป็นเพียงสายเคเบิลและฮาร์ดแวร์ (เป็น) การทำให้เป็นอนุกรม (SERDES) ที่รอบนอกของวิดีโอ IC ที่ทำงานที่อัตราข้อมูลอนุกรมเหล่านั้น หลังจากฮาร์ดแวร์ของ SERDES ภายในจะมีบัสขนานกันอีกครั้งที่วิ่งกลับมาที่อัตรานาฬิกาที่ต่ำกว่า บล็อก SERDES สามารถทำงานได้อย่างรวดเร็ว - PCIe คือ 8Gbps ต่อเลนดังนั้นบล็อกของ SERDES จะทำงานที่ 4GHz (ใช้ขอบนาฬิกาทั้งสองสำหรับบิต - DDR)
Tom Carpenter

1
8b / 10b ปรับปรุงการปฏิเสธข้อผิดพลาดเนื่องจากตรวจจับการเปลี่ยนแปลงได้ง่ายกว่าสถานะในสัญญาณเร็ว การเข้ารหัสนั้นรับประกันได้ว่าจะไม่นานเกินไปหรือเลขศูนย์ติดต่อกัน
pjc50

1
@curiousdannii มันเป็นวัฏจักรที่น่าสนใจใช่ไหม ก่อนอื่นเราเริ่มด้วย serial (เช่น UART) ซึ่งช้าเกินไป (ให้พูดได้สูงสุด 115kbps) จากนั้นเราไปที่รถเมล์ขนานอย่าง IDE ซึ่งมีความเร็วสูงสุดที่ 66MHz @ 16 บิตดังนั้น 1Gbps หรือมากกว่านั้น จากนั้นเรากลับไปที่ซีเรียลเพราะปรากฎว่าเราสามารถไปได้อย่างรวดเร็วด้วยรถบัสที่แตกต่างกัน แต่ตอนนี้อนุกรมไม่เร็วพออีกแล้วดังนั้นเราจึงไปกับอนุกรมขนาน - หลายช่องทางของรถเมล์อนุกรมแต่ละตัวซึ่งสามารถจัดการแยกจากกันได้อย่างสมบูรณ์และจากนั้นเลนใด ๆ ไปยังเลนลาดเอียงจะถูกแก้ไขด้วย FIFO
Tom Carpenter

19

คอมพิวเตอร์สมัยใหม่นั้นเร็วอย่างน่าประหลาดใจ ผู้คนจะโหลดวิดีโอ HD 30fps แบบเต็มอย่างมีความสุขโดยไม่ทราบว่าเกี่ยวข้องกับการดำเนินการทางคณิตศาสตร์หลายพันล้านต่อวินาที นักเล่นเกมมีแนวโน้มที่จะตระหนักถึงเรื่องนี้มากขึ้นเล็กน้อย GTX 1060 จะให้ 4.4 TFLOPS ( การดำเนินการจุดลอยล้านต่อวินาที)

โปรดอธิบายว่าการคำนวณของฉันผิดหรือไม่และข้อมูลนี้ถูกขนส่งจากกราฟิกการ์ดไปยังหน้าจอของฉันอย่างไร

รถบัสระหว่างการ์ดกราฟิกและหน้าจอของฉันมีความกว้างเท่าใด

คำตอบอื่นได้กล่าวถึงธรรมชาติของกิกะบิต, DisplayLink และอื่น ๆ

อาจอธิบายสั้น ๆ ว่าจอแสดงผลจัดเก็บพิกเซลได้อย่างไร ลงทะเบียน Shift หรือไม่ แคช?

ในทางทฤษฎีจอแสดงผลจะไม่มีการเก็บข้อมูลภาพ

(จอแสดงผลบางเครื่องโดยเฉพาะโทรทัศน์จัดเก็บเฟรมหนึ่งหรือสองเฟรมเพื่อใช้การประมวลผลภาพซึ่งจะเพิ่มความล่าช้าและไม่เป็นที่นิยมของนักเล่นเกม)

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

เกมถูกวาดขึ้นใหม่ทุกเฟรมและมีวรรณกรรมมากมายเกี่ยวกับการสร้างฉาก สิ่งนี้สร้างขึ้นใน framebuffer บนการ์ดกราฟิกซึ่งจะถูกส่งออกไปในขณะที่เฟรมถัดไปจะถูกดึงเข้าไปในบัฟเฟอร์ที่แตกต่างกัน

การถอดรหัสวิดีโอมักจะมอบให้กับฮาร์ดแวร์เฉพาะเช่นกันโดยเฉพาะ H.264


11

การเชื่อมโยงระหว่างการ์ดแสดงผลและแผงจอแอลซีดีจะถูกนำไปใช้กับคู่ความเร็วสูงหลายคู่โดยใช้การส่งสัญญาณ TMDSซึ่งมักเรียกว่า "เลน" โดยทั่วไปจะมีการใช้เลนสี่เลนดังนั้นเราจึงสามารถพูดได้ว่าบัสมีความกว้าง 4 บิต สำหรับรายละเอียดเพิ่มเติมบางส่วนมีคำตอบ stackhexchange

แต่ละรุ่นแผง LCD มักจะผลิตด้วยอินเทอร์เฟซหลายอินเทอร์เฟซดังนั้นหนึ่งต้องระวังและดูคำต่อท้ายเมื่อพยายามแทนที่แผงแตก ลิงค์ดิจิตอลที่ทันสมัยที่สุด (HDMI 1.4) มี 10.2 Gbps หรือเพียง 2.5 Gbps ต่อเลน ในการคำนวณของคุณ (663 MBps) มันจะรวมเป็น 1.2 Gbps ต่อเลน (สมมติว่า 4 เลน) ซึ่งไม่มาก (เช่น SATA3 มี 6Gbps)

เพิ่มเติมบนแผงหน้าจอ LCD LCD active-matrix พยายามเก็บภาพเฟรม (ข้อมูลพิกเซล) ในตัวเก็บประจุที่เกี่ยวข้องกับ "Twisted Nematic Cells" (อันที่ควบคุมการโพลาไรซ์ฟิล์ม) ปัญหาคือขนาดของตัวเก็บข้อมูลแบบอะนาล็อกต้องมีการแลกเปลี่ยนระหว่างเวลาที่เก็บข้อมูลและความเร็วของการสลับพิกเซล ดังนั้นจึงไม่สามารถที่จะทำขนาดใหญ่สูญเสียเก็บไว้ที่อาจเกิดขึ้นได้อย่างรวดเร็วและดังนั้นจึงต้องมีการฟื้นฟูระยะ เซลล์แต่ละพิกเซลเชื่อมต่อกับข้อมูลและบรรทัดที่อยู่ผ่านทรานซิสเตอร์ ( "งาน" องค์ประกอบ) เห็นนี้บทความ Tomshardware ตัวควบคุมไดรเวอร์จอแอลซีดี muliplexes ข้อมูลและบรรทัดที่อยู่ในแบบบรรทัดต่อบรรทัดจึงยังคงภาพที่แสดง ภาพนั้นถูกเก็บไว้ใน frame buffer (RAM) ภายในคอนโทรลเลอร์กราฟิก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.