Saya tertarik pada bagaimana cpu / gpu menyajikan (ke peralatan apa pun yang dilakukannya) data video setelah diproses.
Saya telah diberitahu bahwa video diproses oleh CPU / GPU dan kemudian dikirim ke sirkuit terintegrasi dengan serial kecepatan tinggi yang mengubah sinyal serial menjadi output tampilan yang sesuai, tetapi saya tidak dapat mengonfirmasi ini dengan mencari online.
Saya tertarik dengan pensinyalan dan tidak dapat mencari protokol / dll karena saya tidak tahu apa yang saya cari. Jadi apakah CPU / GPU berinteraksi dengan output video secara langsung (saya dapat menemukan protokol-protokol ini dengan mudah) atau adakah "perantara" yang bisa dikatakan dan jika demikian apa, jenis chip / dll?
Jawaban:
Gambar yang ditampilkan pada monitor disimpan dalam RAM video komputer Anda pada kartu grafis dalam struktur yang disebut framebuffer. Data dalam framebuffer umumnya warna RGB 24 bit, sehingga akan ada satu byte untuk merah, satu untuk hijau, dan satu untuk biru untuk setiap piksel pada layar, mungkin dengan beberapa byte bantalan tambahan. Data dalam RAM video dapat dihasilkan oleh GPU atau oleh CPU. RAM video terus dibaca oleh komponen DMA khusus pada kartu video dan dikirim ke monitor. Output sinyal ke monitor adalah sinyal analog (VGA) di mana komponen warna dikirim melalui konverter digital ke analog sebelum meninggalkan kartu, atau sinyal digital dalam kasus DVI, HDMI, atau DisplayPort. Perangkat keras yang bertanggung jawab untuk ini juga menghasilkan sinyal sinkronisasi horizontal dan vertikal serta semua penundaan yang sesuai sehingga data gambar hanya dikirim ke monitor ketika sudah siap untuk itu. Dalam DVI dan HDMI, aliran informasi warna piksel dikodekan dan diserialisasi dan dikirim melalui TMDS (transisi meminimalkan sinyal diferensial) ke monitor. DisplayPort menggunakan pengodean 8b / 10b. Pengkodean melayani beberapa tujuan. Pertama, TMDS meminimalkan transisi sinyal untuk mengurangi emisi EMI. Kedua, baik TMDS dan 8b / 10b adalah protokol seimbang DC sehingga kapasitor pemblokiran DC dapat digunakan untuk menghilangkan masalah dengan ground loop. Ketiga, 8b / 10b memastikan kepadatan transisi yang cukup tinggi untuk memungkinkan pemulihan jam pada penerima karena DisplayPort tidak mendistribusikan jam terpisah. aliran informasi warna piksel dikodekan dan diserialisasi dan dikirim melalui TMDS (transisi pensinyalan diferensial yang diperkecil) ke monitor. DisplayPort menggunakan pengodean 8b / 10b. Pengkodean melayani beberapa tujuan. Pertama, TMDS meminimalkan transisi sinyal untuk mengurangi emisi EMI. Kedua, baik TMDS dan 8b / 10b adalah protokol seimbang DC sehingga kapasitor pemblokiran DC dapat digunakan untuk menghilangkan masalah dengan ground loop. Ketiga, 8b / 10b memastikan kepadatan transisi yang cukup tinggi untuk memungkinkan pemulihan jam pada penerima karena DisplayPort tidak mendistribusikan jam terpisah. aliran informasi warna piksel dikodekan dan diserialisasi dan dikirim melalui TMDS (transisi pensinyalan diferensial yang diperkecil) ke monitor. DisplayPort menggunakan pengodean 8b / 10b. Pengkodean melayani beberapa tujuan. Pertama, TMDS meminimalkan transisi sinyal untuk mengurangi emisi EMI. Kedua, baik TMDS dan 8b / 10b adalah protokol seimbang DC sehingga kapasitor pemblokiran DC dapat digunakan untuk menghilangkan masalah dengan ground loop. Ketiga, 8b / 10b memastikan kepadatan transisi yang cukup tinggi untuk memungkinkan pemulihan jam pada penerima karena DisplayPort tidak mendistribusikan jam terpisah.
Juga, untuk HDMI dan DisplayPort, data audio juga dikirim ke kartu grafis untuk dikirim ke monitor. Data ini dimasukkan ke dalam jeda dalam aliran data antara bingkai video. Dalam hal ini, kartu video akan menampilkan dirinya sebagai wastafel audio ke sistem operasi, dan data audio akan ditransfer melalui DMA ke kartu untuk dimasukkan dengan data video.
Sekarang, Anda mungkin menyadari bahwa untuk tampilan 1920x1080 dengan 4 byte per piksel, Anda hanya perlu sekitar 8 MB untuk menyimpan gambar, tetapi RAM video di komputer Anda mungkin berkali-kali lipat dari ukuran itu. Ini karena RAM video tidak hanya dimaksudkan untuk menyimpan framebuffer. RAM video terhubung langsung ke GPU, prosesor tujuan khusus yang dirancang untuk rendering 3D dan decoding video yang efisien. GPU menggunakan akses langsung ke RAM video untuk mempercepat proses rendering. Faktanya, memasukkan data dari memori utama ke dalam memori video adalah sedikit hambatan karena bus PCI yang menghubungkan kartu video ke CPU dan memori utama secara signifikan lebih lambat daripada koneksi antara GPU dan RAM video.
sumber
Berbagai keluaran tampilan modern pada dasarnya adalah bitstream serial. Bitrate terlalu tinggi untuk prosesor (atau jika bisa terus-menerus akan mengklaim terlalu banyak waktu pemrosesan). Sepotong memori disisihkan untuk mengandung potongan-potongan gambar. Sepotong perangkat keras khusus membaca isi memori dan mengalirkannya. Bagian ini mirip dengan pengontrol DMA dan sebenarnya cukup sederhana. Ini hanya sebagian kecil dari GPU modern, yang sebagian besar menyangkut dirinya dengan menciptakan gambar dalam memori dari perintah GPU tingkat yang lebih tinggi.
Memori yang berisi gambar video dapat menjadi bagian dari memori utama (murah) atau memori khusus yang dapat diakses secara bersamaan oleh 'DMA' dan CPU dan / atau GPU. 'DMA' harus dikonfigurasi dengan berbagai parameter, misalnya lebar dan tinggi piksel, kedalaman warna, lokasi awal dalam memori, dll.
Pada komputer modern, GPU adalah prosesor (sangat khusus) yang menyaingi kecepatan CPU utama (dan melampauinya di wilayahnya sendiri). Itu hal-hal seperti menghasilkan gambar psuido-3D dari sekelompok objek 3D dengan tekstur dan sumber cahaya. Ini semua bisa dilakukan di dalam memori video, oleh GPU. CPU hanya mengirimkan objek, tekstur, dan sumber cahaya.
Membaca data video dari memori dan memindahkannya adalah proses yang agak sederhana, tetapi harus dilakukan dengan cukup cepat, dan sepanjang waktu. Karenanya tugas ini sangat cocok untuk perangkat keras khusus, dan tidak cocok untuk CPU. AFAIK komputer terakhir yang melibatkan CPU dalam menghasilkan sinyal video adalah ZX80 / 81 dan Spectrum. Pada mereka CPU hanya bisa melakukan pekerjaannya sendiri selama waktu retrace (vertikal?).
sumber