Đó là một hoạt động phổ biến đến mức hầu hết chúng ta có thể chưa bao giờ dừng lại để nghĩ về nó: tự động khởi động lại. Cho dù do người dùng hay do ứng dụng khởi tạo, điều gì sẽ xảy ra chính xác khi máy tính của bạn tự ngắt nguồn?
Phiên Hỏi & Đáp hôm nay đến với chúng tôi với sự hỗ trợ của SuperUser — một phân nhánh của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng thúc đẩy.
Câu hỏi
Độc giả Seth Carnegie của SuperUser thắc mắc về quản lý năng lượng máy tính:
Làm thế nào một máy tính có thể tự khởi động lại? Sau khi tắt, làm thế nào nó tự báo cho mình để hoạt động trở lại? Loại phần mềm nào có thể làm được điều này?
Thực tế như thế nào? Sự kết hợp giữa phần mềm / phần cứng ma thuật nào khiến nó xảy ra?
Câu trả lời
Người đóng góp cho SuperUser, Jcrawfordor đưa ra cả câu trả lời cô đọng và chi tiết cho câu hỏi để giải quyết đầy đủ hơn câu hỏi:
Quá lâu; không đọc câu trả lời: Trạng thái nguồn trong máy tính của bạn được kiểm soát bởi việc triển khai ACPI (cấu hình nâng cao và giao diện nguồn). Khi kết thúc quá trình tắt máy, hệ điều hành của bạn đặt lệnh ACPI chỉ ra rằng máy tính nên khởi động lại. Đáp lại, bo mạch chủ đặt lại tất cả các thành phần bằng cách sử dụng các lệnh hoặc dòng đặt lại tương ứng của chúng, sau đó thực hiện theo quy trình bootstrap. Bo mạch chủ không bao giờ thực sự tắt, nó chỉ đặt lại các thành phần khác nhau và sau đó hoạt động như thể nút nguồn vừa được nhấn.
Dài và lan man nhưng (theo ý kiến của tôi) câu trả lời thú vị hơn:
Quyền lực mềm và cách thức hoạt động
Ngày xưa (tốt, được rồi, đối với một sinh viên đại học như tôi, thập niên 90 đã lâu rồi), chúng tôi có bo mạch chủ AT (Công nghệ tiên tiến) với Công suất AT sự quản lý. Hệ thống điện AT rất, rất đơn giản. Nút nguồn trên máy tính của bạn là một nút chuyển đổi phần cứng (có thể là ở phía sau vỏ máy) và đầu vào 120vac của bạn đã đi đúng vào nút đó. Nó thực sự bật và tắt nguồn cho nguồn điện của bạn và khi công tắc này ở vị trí Tắt, mọi thứ trong máy tính của bạn đã hoàn toàn chết (điều này làm cho pin CMOS rất quan trọng, bởi vì không có nó thì không có nguồn điện để giữ phần cứng đồng hồ tích tắc). Vì công tắc nguồn là một cơ chế vật lý, không có cách nào phần mềm để bật và tắt nguồn. Windows sẽ hiển thị thông báo nổi tiếng "Bây giờ là an toàn để tắt máy tính của bạn" bởi vì, mặc dù mọi thứ đã được dừng và sẵn sàng tắt, nhưng hệ điều hành không thể thực sự bật công tắc nguồn. Cấu hình này đôi khi được gọi là sức mạnh cứng , bởi vì tất cả đều là phần cứng.
Ngày nay mọi thứ đã khác, vì sự kỳ diệu của bo mạch chủ ATX và Công suất ATX (đó là Công nghệ tiên tiến được eXtended nếu bạn đang theo dõi). Cùng với một số tiến bộ khác (mini-DIN PS / 2, có ai không?), ATX đã mang lại quyền lực mềm . Quyền lực mềm có nghĩa là quyền lực đối với máy tính có thể được kiểm soát bằng phần mềm. Điều này dẫn đến một số thay đổi nhập:
- Nguồn ở chế độ chờ: bạn có thể đã thấy đầu nối “5v SB” hoặc “5v standby” được gắn nhãn trong sơ đồ chân của nguồn điện. Các nguồn điện dự phòng là đường 5v vào bo mạch chủ của bạn luôn bật, ngay cả khi máy tính đã tắt. Đây là lý do tại sao điều quan trọng là phải rút phích cắm hoặc tắt công tắc cứng PSU (nếu có) khi bảo dưỡng máy tính hiện đại, vì ngay cả khi nó tắt, bạn có thể có khả năng làm chập SB 5v và làm hỏng bo mạch chủ. Đây cũng là lý do tại sao pin CMOS không còn thực sự quan trọng nữa - SB 5v được sử dụng để thay thế pin CMOS bất cứ khi nào nguồn điện có nguồn chính, vì vậy pin CMOS chỉ được sử dụng khi bạn rút phích cắm hoàn toàn của máy tính. Dòng 5v SB quan trọng cho phép các thành phần của máy tính của bạn (quan trọng nhất là BIOS và bộ điều hợp mạng) tiếp tục chạy một số phần mềm đơn giản ngay cả khi máy tính đã tắt.
- Kiểm soát nguồn điện thông minh. Nếu bạn nhìn vào sơ đồ chân cho đầu nối bo mạch chủ cấp nguồn (P1), bạn sẽ nhận thấy hai chân thường được dán nhãn PS_ON và PS_RDY . Chúng là viết tắt của “nguồn điện đang bật” và “nguồn điện đã sẵn sàng”. Nếu bạn muốn thử nghiệm, hãy lấy nguồn điện không có trong máy tính, cắm vào và cẩn thận nối dây nối đất (một trong các dây màu đen) vào đường dây PS_ON (dây màu xanh lá cây). Nguồn điện sẽ bật rõ ràng, với quạt quay lên. Các thành phần của bo mạch chủ chạy trên + 5v SB thực sự bật và tắt nguồn điện của bạn bằng cách kết nối nguồn với chân PS_ON. Vì có một số tụ điện và các thành phần khác trong bộ nguồn mất một lúc để sạc đầy, điện áp từ các đầu ra chính của bộ nguồn có thể không ổn định ngay sau khi PSU bật. Đây là chân PS_RDY dùng để làm gì, nó hoạt động khi logic bên trong của nguồn điện xác định rằng nguồn điện đã "sẵn sàng" và sẽ cung cấp nguồn điện ổn định. Bo mạch chủ đợi cho đến khi PS_RDY bật để tiếp tục khởi động.
Vì vậy, công tắc nguồn của bạn không còn "bật" máy tính nữa. Thay vào đó, bộ điều khiển này được kết nối với bộ điều khiển cơ bản của bo mạch chủ để phát hiện rằng nút đã được nhấn và thực hiện một số bước để sẵn sàng hệ thống, bao gồm cả việc thắp sáng PS_ON để có điện. Nút nguồn không phải là cách duy nhất để kích hoạt quá trình khởi động, các thiết bị trên bus mở rộng của bạn cũng có thể làm như vậy. Điều này rất quan trọng vì các bộ điều hợp mạng ethernet của bạn thực sự vẫn hoạt động khi máy tính của bạn tắt và tìm kiếm một gói rất cụ thể thường được gọi là “Gói ma thuật”. Nếu họ phát hiện gói này được gửi đến địa chỉ MAC của họ, họ sẽ kích hoạt quá trình khởi động. Đây là cách hoạt động của “Wake-on-LAN” (WoL). Đồng hồ cũng có thể bắt đầu khởi động (hầu hết BIOS cho phép bạn đặt thời gian mà máy tính sẽ khởi động mỗi ngày) và các thiết bị USB và FireWire có thể kích hoạt khởi động, mặc dù tôi không biết về việc triển khai điều này.
Hiểu kiểm soát nguồn điện
Chà, tôi giải thích vấn đề Soft Power cả vì tôi nghĩ nó thú vị (luôn là lý do chính mà tôi giải thích) và vì nó cho phép bạn hiểu cách nguồn và trạng thái chạy / tắt của máy tính của bạn đều được điều khiển bởi phần mềm. Trong hầu hết các máy tính hiện tại, hệ thống phần mềm này là sự triển khai của Cấu hình nâng cao và giao diện nguồn hoặc ACPI . ACPI là một hệ thống thống nhất, được tiêu chuẩn hóa cho phép phần mềm điều khiển hệ thống điện máy tính của bạn. Bạn có thể đã nghe nói về Trạng thái nguồn ACPI . Cơ chế cơ bản của điều khiển nguồn là các “trạng thái nguồn” này, hệ điều hành của bạn chuyển qua các chế độ nguồn bằng cách chuẩn bị cho công tắc (các quá trình tắt / ngủ đông xảy ra trước khi nguồn thực sự tắt), sau đó ra lệnh cho bo mạch chủ chuyển các trạng thái nguồn. . Các trạng thái quyền lực trông như thế này:
- G0: Đang hoạt động (trạng thái “bật” của máy tính)
-
G1: Ngủ (trạng thái chờ của máy tính của bạn, được chia cho các trạm biến áp S)
- S1: nguồn cho CPU và RAM vẫn bật, nhưng CPU không thực hiện các lệnh. Các thiết bị ngoại vi bị tắt nguồn.
- S2: CPU tắt nguồn, RAM duy trì
- S3: Tất cả các thành phần bị tắt nguồn ngoại trừ RAM và các thiết bị sẽ kích hoạt tiếp tục (bàn phím). Khi bạn yêu cầu hệ điều hành của mình "Ngủ", nó sẽ dừng các quá trình và sau đó chuyển sang chế độ này.
- S4: Ngủ đông. Tuyệt đối mọi thứ đều bị tắt. Khi bạn yêu cầu hệ điều hành của mình ở chế độ Hibernate, nó sẽ dừng các quá trình, lưu nội dung của RAM vào đĩa, sau đó chuyển sang chế độ này.
- G2: Tắt mềm. đây là trạng thái "tắt" của máy tính của bạn. Tất cả mọi thứ đều tắt nguồn ngoại trừ các thiết bị có thể kích hoạt khởi động.
- G3: Tắt máy.
Cách thiết lập lại thực sự xảy ra
Bạn sẽ nhận thấy rằng khởi động lại không phải là một trong những trạng thái này. Vậy điều gì thực sự xảy ra khi máy tính của bạn khởi động lại? Câu trả lời có thể gây ngạc nhiên, bởi vì từ góc độ quản lý quyền lực, hầu như không có gì . Có một lệnh đặt lại ACPI . Khi bạn yêu cầu hệ điều hành khởi động lại, nó sẽ tuân theo quy trình tắt bình thường (dừng tất cả các quy trình của bạn, thực hiện một chút bảo trì, tháo gỡ hệ thống tệp của bạn, v.v.) và sau đó là bước cuối cùng, thay vì đưa máy về trạng thái nguồn. G2 (như nếu bạn chỉ yêu cầu nó Tắt máy), nó sẽ đặt lệnh Reset. Đây thường được gọi là “Thanh ghi đặt lại”, vì giống như hầu hết các giao diện ACPI, nó chỉ là một địa chỉ mà một giá trị cụ thể phải được ghi vào để yêu cầu đặt lại. Tôi sẽ trích dẫn thông số kỹ thuật 2.0 về chức năng của nó:
Cơ chế đặt lại ACPI tùy chọn chỉ định một cơ chế tiêu chuẩn cung cấp thiết lập lại hệ thống hoàn chỉnh. Khi thực hiện, cơ chế này phải thiết lập lại toàn bộ hệ thống. Điều này bao gồm bộ xử lý, logic lõi, tất cả các bus và tất cả các thiết bị ngoại vi. Từ quan điểm của OSPM, việc khẳng định cơ chế đặt lại là cơ chế logic tương đương với chu kỳ cấp nguồn cho máy. Khi giành được quyền kiểm soát sau khi đặt lại, OSPM sẽ thực hiện các hành động giống như khởi động nguội.
Vì vậy, khi thanh ghi đặt lại được thiết lập, một số điều xảy ra theo trình tự.
- Tất cả logic được đặt lại. Điều này có nghĩa là gửi các lệnh đặt lại tương ứng đến các bit phần cứng khác nhau bao gồm CPU, bộ điều khiển bộ nhớ, bộ điều khiển ngoại vi, v.v. Trong hầu hết các trường hợp, điều này chỉ đơn giản có nghĩa là thắp sáng một dây RST vật lý, như AndrejaKo đã trình bày ở trên.
- Sau đó máy tính sẽ được khởi động. Đây là phần "thực hiện các hành động theo cách giống như khởi động lạnh". Bo mạch chủ thực hiện các bước tương tự như khi nguồn điện đã sẵn sàng sau khi nhấn nút nguồn.
Kết quả cuối cùng của hai bước này (thực sự được chia thành nhiều bước hơn) là nó trông giống như mọi thứ giống như máy tính vừa khởi động, nhưng thực sự thì nguồn điện vẫn hoạt động. Điều này có nghĩa là cần ít thời gian hơn để tắt và khởi động (vì bạn không phải đợi nguồn điện sẵn sàng) và quan trọng là cho phép khởi động khởi động khi hệ điều hành tắt. Điều này có nghĩa là không cần sử dụng một trình kích hoạt khởi động khác (WoL, v.v.) và cho phép bạn sử dụng Khởi động lại như một cách hiệu quả để đặt lại hệ thống từ xa, khi bạn không có cách nào để kích hoạt khởi động.
Đó là một câu trả lời dài. Nhưng này, hy vọng bây giờ bạn biết nhiều hơn về quản lý năng lượng máy tính. Tôi chắc chắn đã học được một số điều khi nghiên cứu điều này.
Có điều gì đó để thêm vào lời giải thích? Tắt âm thanh trong các bình luận. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra toàn bộ chuỗi thảo luận tại đây .