ACPI (Advanced Configuration and Power Interface), merupakan sebuah spesifikasi industri terbuka yang mengizinkan para desainer perangkat lunak untuk mengintegrasikan fitur-fitur manajemen daya dalam sebuah sistem komputer, yang mencakup perangkat keras, sistem operasi, dan perangkat lunak aplikasi.

Contoh tabel ACPI.

Intel, Microsoft dan Toshiba awalnya mengembangkan sebuah standar mereka sendiri kemudian diikuti oleh HP, Huawei dan Phoenix. Pada Oktober 2013, ACPI Special Interest Group (ACPI SIG), pengembang asli dari standar ACPI, setuju untuk mentransfer semua aset ke Forum UEFI, yang di mana akan dilakukan lagi pengembangan ke depannya.[1]

Forum UEFI menerbitkan versi standar terbaru, "Release 6.5" pada August 2022.[2]

Sejarah sunting

Revisi pertama dari spesifikasi ACPI dirilis pada Desember 1996, mendukung ruang pengalamatan 16, 24 dan 32-bit. Setelah itu pada Agustus 2000 ACPI menerima dukungan alamat 64-bit serta dukungan untuk ruang kerja dan server multiprosesor dengan revisi 2.0.

Pada 1999 CEO dari Microsoft, yaitu Bill Gates menyatakan dalam surel-nya bahwa Linux akan mendapat manfaat dari ACPI tanpa mereka harus bekerja dan disarankan untuk membuatnya hanya untuk Windows.[3][4][5]

Pada September 2004, revisi 3.0 dirilis, membawa ke dukungan spesifikasi ACPI untuk antarmuka SATA, bus PCI Express, dukungan multiprosessor untuk lebih dari 256 prosesor, sensor cahaya sekitar, dan perangkat kehadiran pengguna, serta memperluas model termal di luar dukungan prosesor-sentris sebelumnya.

Dirilis pada Juni 2009, revisi 4.0 dari spesifikasi ACPI menambahkan berbagai fitur baru pada desain; paling menonjol adalah dukungan USB 3.0, dukungan mode diam prosesor logis, dan dukungan x2APIC.

Revisi 5.0 dari spesifikasi ACPI dirilis pada Desember 2011,[6] yang menambahkan dukungan arsitektur ARM. Revisi 5.1 dirilis pada Juli 2014.[7]

Revisi spesifikasi terbaru adalah 6.5 yang dirilis pada Agustus 2022.[8]

Kewajiban OSPM sunting

Setelah sistem operasi yang kompatibel dengan OSPM mengaktifkan ACPI, itu mengambil alih kontrol eksklusif atas semua aspek manajemen daya dan konfigurasi perangkat. Implementasi OSPM harus memaparkan lingkungan yang kompatibel dengan ACPI ke driver perangkat, yang memaparkan status sistem, perangkat, dan prosesor tertentu.

Kondisi daya sunting

Kondisi global sunting

Spesifikasi ACPI menentukan empat status "Gx" global berikut dan enam status tidur "Sx" untuk sistem komputer yang sesuai dengan ACPI:[9][10]

Gx Nama Sx Deskripsi
G0 Working S0 komputer sedang berjalan dan CPU menjalankan instruksi. "Awaymode" adalah subset dari S0, di mana monitor mati tetapi tugas latar belakang sedang berjalan
G1 Sleeping S0ix Modern Standby,[11] atau "Mode diam S0 Daya Rendah". SoC prosesor sebagian tidur.[12][13] Dikenal dengan perangkat ARM dan x86.
S1 Power on Suspend (POS): Tembolok prosesor dikosongkan, dan CPU berhenti menjalankan instruksi. Daya ke CPU dan RAM dipertahankan. Perangkat yang tidak menunjukkan bahwa mereka harus tetap hidup dapat dimatikan.
S2 CPU dimatikan. tembolok kotor di-aliri ke RAM.
S3 Biasanya disebut sebagai Standby, Sleep, atau Suspend to RAM (STR): RAM tetap diberi daya. Kipas mungkin mati. Memerlukan driver GPU di Windows.
S4 Hibernasi atau Suspend to Disk: Semua konten dari memori utama disimpan ke dalam Memori non-volatile seperti hard drive, dan sistem dimatikan.
G2 Soft Off S5 G2/S5 hampir sama dengan G3 Mechanical Off, kecuali bahwa unit catu daya (PSU) masih menyuplai daya, minimal, ke tombol daya untuk memungkinkan kembali ke S0. Tidak ada konten sebelumnya yang dipertahankan. Komponen lain mungkin tetap diberi daya sehingga komputer dapat "bangun" saat input dari keyboard, jam, perangkat modem, LAN, USB.
G3 Mechanical Off Daya komputer telah sepenuhnya dihilangkan melalui sakelar mekanis (seperti di bagian belakang PSU). Kabel daya dapat dilepas dan sistem aman untuk dibongkar (biasanya, hanya jam Waktu Nyata terus berjalan menggunakan baterai kecilnya).

Spesifikasi juga mendefinisikan kondisi Legacy: kondisi sistem operasi yang tidak mendukung ACPI. Dalam kondisi ini, perangkat keras dan daya tidak dikelola melalui ACPI, yang secara efektif menonaktifkan ACPI.

Kondisi perangkat sunting

Status perangkat D0D3 bergantung pada perangkat:

  • D0 atau Fully On adalah kondisi operasi.
    • Seperti halnya S0ix, Intel mempunyai kondisi D0ix untuk tingkat menengah pada SoC.[14]
  • D1 dan D2 adalah kondisi daya menengah yang definisinya bervariasi menurut perangkat.
  • D3: Kondisi D3 dibagi lagi menjadi D3 Hot (memiliki daya bantu), dan D3 Cold (tidak ada daya disediakan):
    • Hot: Perangkat dapat menyatakan permintaan manajemen daya untuk beralih ke status daya yang lebih tinggi.
    • Cold atau Off memiliki perangkat dimatikan dan tidak responsif terhadap busnya.

Sistem operasi sunting

Sistem operasi yang mendukung ACPI adalah Windows 98 Second Edition, Windows Millennium Edition, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista dari Microsoft serta GNU/Linux dengan kernel versi 2.4.x. Sistem-sistem operasi tersebut dapat menangani semua sumber daya yang berkaitan dengan manajemen daya sebuah komputer. ACPI bekerja sama dengan subsistem dan periferal dalam komputer desktop, komputer portabel, hingga komputer server. ACPI juga menjadi fondasi dasar dari OnNow Industry Initiative yang mengizinkan komputer dapat dinyalakan hanya dengan menekan tombol keyboard (via konfigurasi BIOS).

Risiko keamanan sunting

Penemu Ubuntu Mark Shuttleworth mengatakan ACPI adalah risiko keamanan.[15] Dia mengatakan "memperdebatkan ACPI pada perangkat generasi mendatang Anda memperdebatkan trojan horse dengan proporsi monumental untuk dipasang di ruang tamu dan di pusat data Anda" dan "firmware pada perangkat Anda adalah sahabat NSA". Dia melanjutkan dengan mengatakan, "Kesalahan terbesar anda berasumsi bahwa NSA adalah satu-satunya institusi yang menyalahgunakan posisi kepercayaan ini – pada kenyataannya, masuk akal untuk berasumsi bahwa semua firmware adalah tangki septik yang tidak aman, bersumber dari ketidakkompetensi tingkat tertinggi dari produsen, dan kompetensi tingkat tertinggi dari berbagai lembaga tersebut." Dia menyarankan firmware sumber terbuka, deklaratif (ACPI atau non-ACPI) sebagai solusi.[16]

Referensi sunting

  1. ^ "The Advanced Configuration & Power Interface web page has a prominent note that links to the Preexisting ACPI Specifications page on the UEFI web site". acpi.org. July 23, 2014. Diarsipkan dari versi asli tanggal June 22, 2011. Diakses tanggal 2016-01-25. 
  2. ^ "Advanced Configuration and Power Interface Specification, Release 6.5" (PDF). UEFI.org/specifications. August 2022. Diakses tanggal 2022-10-04. 
  3. ^ "Microsoft wollte ACPI nur für Windows". Der Standard (dalam bahasa Jerman). Diakses tanggal 2022-11-06. 
  4. ^ "Microsoft: ACPI sollte nur unter Windows funktionieren". Golem.de. Diakses tanggal 2022-11-06. 
  5. ^ Gates, Bill (1999-01-24). "ACPI extensions" (PDF). Diarsipkan dari versi asli (PDF) tanggal 2007-02-02. 
  6. ^ Hewlett-Packard; Intel Corporation; Microsoft; Phoenix Technologies; Toshiba (2011-12-06). "Advanced Configuration and Power Interface Specification (Revision 5.0)" (PDF). acpi.info. Diarsipkan dari versi asli (PDF) tanggal September 14, 2012. Diakses tanggal 2013-11-17. 
  7. ^ "Advanced Configuration and Power Interface Specification (Revision 5.1)" (PDF). uefi.org. 2014-07-23. Diakses tanggal 2015-05-24. 
  8. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama revision-6.5
  9. ^ ACPI Spec Rev 5.0 - dated December 6, 2011
  10. ^ Anand Lal Shimpi (2012-10-05). "Intel's Haswell Architecture Analyzed". AnandTech. Diakses tanggal 2013-10-20. 
  11. ^ windows-driver-content. "Modern Standby". docs.microsoft.com (dalam bahasa Inggris). Diakses tanggal 2020-03-20. 
  12. ^ "S0ix States". software.intel.com (dalam bahasa Inggris). 9 March 2020. 
  13. ^ Wang, Wendy (17 October 2018). "How to achieve S0ix states in Linux*". 01.org. 
  14. ^ "D0ix States". software.intel.com (dalam bahasa Inggris). 9 March 2020. 
  15. ^ Mark Shuttleworth blog (March 17, 2014), "ACPI, firmware and your security"
  16. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama linux-mag-162

Pranala luar sunting