Apple II, một chiếc máy tính “đồ cổ” do Apple sản xuất và phát hành vào tháng 6/1977 là một món đồ quá cũ, và so với nó, các dàn PC hiện đại có thể được xem là siêu máy tính. Phiên bản cao cấp nhất của Apple 2 chỉ sở hữu 64 KB RAM, màn hình của nó chỉ có độ phân giải 280x192 pixel và bộ xử lý chạy ở tốc độ 1.023 MHz. Tuy nhiên dù cổ xưa đến mức này, nó vẫn vượt trội so với những dàn PC khủng hiện tại ở một điều: khả năng phản ứng với lệnh điều khiển của người sử dụng, thường được đo bằng độ trễ (latency).
Khi đo đạc khoảng thời gian từ khi bạn bấm nút trên bàn phím đến khi kết quả của cú ấn phím đó hiển thị trên màn hình, chiếc Apple II hoàn tất phần việc của mình trong 30 mili giây (0,03 giây), trong khi một laptop chạy i7 6500U cần 150 mili giây (0,15 giây) để làm được điều này. Bạn có thể xem kết quả đo đạc của hai máy tính mà Mọt vừa nhắc đến và một số máy tính khác trong bảng dưới đây, được thực hiện bởi Dan Luu, một kỹ sư từng làm việc cho Google và Microsoft.
Khi bạn nhấn một nút bấm trên bàn phím hoặc di chuyển con chuột, có khá nhiều điều xảy ra. Đầu tiên, một tín hiệu điện sẽ được tạo ra và được gửi tới bộ xử lý (microcomputer chip – MCU) nằm ngay trong bàn phím hoặc chuột. Bộ xử lý này sẽ chuyển tín hiệu đó đến bộ điều khiển USB trên mainboard, nơi mà tín hiệu này sẽ được hệ điều hành ghi nhận và gửi nó đến game hoặc ứng dụng mà bạn đang chạy. Ứng dụng này lại gửi tín hiệu đó đến card đồ họa để dựng hình, và rồi tấm hình đó sẽ được gửi đến màn hình để chuyển thành các điểm sáng mà bạn có thể nhìn thấy được. Tất cả những hoạt động này đều tốn thời gian, và chúng kết hợp với nhau để làm cho chiếc “siêu máy tính” của bạn chậm chạp hơn so với Apple II cổ lỗ sĩ.
Có thể bạn sẽ nghĩ rằng 0,15 giây trên những máy tính hiện đại thì chẳng là gì, và chúng ta sẽ không cảm nhận được điều đó – nhưng không, thật ra thì 0,15 giây là rất đáng kể. Một quyển sách có tên Usability Engineering được phát hành hồi năm 1993 đã chỉ ra rằng 0,1 giây là khoảng thời gian mà các PC nên cố gắng đạt được bởi nó đem lại cho người dùng cảm giác “ngay lập tức,” và cuốn sách này đã là một nền tảng quan trọng cho sự phát triển của công nghệ điện tử lâu nay. Bên cạnh đó, con người thực sự có thể nhận ra sự khác biệt nhỏ tới khoảng 0,016 giây, theo một nghiên cứu của NASA được công bố vào năm 1999.
Nếu từng phải lựa chọn bàn phím hay chuột gaming, hẳn bạn đã nghe những lời quảng cáo rằng sản phẩm hãng A, hãng X có khả năng giảm độ trễ bằng những thuật ngữ như polling rate, debouncing, scan rate,… Quả thực chúng có thể giúp giảm độ trễ, nhưng chỉ là một phần nhỏ bởi như Mọt đã nói ở đầu bài, có nhiều nguồn đóng góp vào việc tạo ra độ trễ mà phần mềm không thể can thiệp được.
Đầu tiên, khi bạn nhấn một phím trên bàn phím của mình – dù là membrane “cùi bắp” hay mech key hàng hiệu, một dòng điện sẽ được tạo ra nhưng nó không được ghi nhận ngay lập tức. Thay vào đó, con chip trên bàn phím sẽ chờ một tí để dòng điện này trở nên ổn định, loại trừ khả năng sai sót – khoảng thời gian chờ này kéo dài 5-20 mili giây và cơ chế (phần cứng hoặc phần mềm) giúp loại bỏ sai sót được gọi là debouncing. Mỗi nhà sản xuất có một cách debouncing khác nhau và khoảng thời gian chờ khác nhau. Người ta có thể giảm khoảng thời gian chờ này để tăng tốc độ phản ứng, nhưng cái giá phải trả là số lượng tín hiệu sai lầm sẽ tăng lên. Theo Mọt được biết, các bàn phím dùng switch MX của Cherry thường là 5 mili giây, trong khi công nghệ RealKey của Cherry hứa hẹn là 1 mili giây.
Sau khi thời gian debouncing kết thúc, chúng ta lại phải chờ bàn phím của mình cập nhật trạng thái của các phím trên bề mặt của nó. Khoảng thời gian này được gọi là scan time và dài ngắn tùy thuộc vào tần suất quét (scan) do nhà sản xuất thiết lập, nhưng thường không bao giờ nhanh hơn thời gian debouncing. Vậy nên chúng ta lại phải chờ thêm một chút xíu nữa để bàn phím nhận ra rằng một nút bấm của mình đã được chạm đến.
Và rồi bạn sẽ phải chờ polling rate. Ngày nay, các nhà sản xuất bàn phím thường dùng nó để chỉ ra rằng sản phẩm của mình phản ứng nhanh đến mức nào, nhưng thực ra đó chỉ là số lần mà USB controller kiểm tra xem bàn phím hoặc chuột có gì mới để báo cáo hay không. Polling rate thường là 1.000 Hz, tức là USB controller sẽ kiểm tra một lần mỗi 1 mili giây.
Những khoảng thời gian chờ này là điểm yếu của các sản phẩm gaming gear dùng kết nối USB thời thượng so với cổng PS/2 cổ điển. PS/2 là một kết nối dạng "luôn bật" và trên lý thuyết thì khi bạn bấm nút, tín hiệu được ghi nhận sẽ đến với mainboard ngay lập tức mà không cần phải chờ đợi. Đây là lý do tại sao giao tiếp này có một lượng fan không nhỏ dù lợi thế của nó không hề rõ rệt với đại đa số người dùng.
Đó là còn chưa kể đến vấn đề từ phần cứng. Lấy một ví dụ đơn giản là một phím bấm có hành trình 4mm thường được kích hoạt ở 2mm nếu là mech key, và 4mm nếu là membrane. Khoảng thời gian cần thiết để phím bấm đi đến vị trí kích hoạt cũng góp một phần rất lớn vào độ trễ mà chúng ta có thể cảm nhận được từ khi bấm phím đến lúc thấy kết quả hiện trên màn hình. Các phím kiểu scissor có hành trình phím ngắn hơn nhiều và từ đó đem lại độ trễ thấp hơn, nhưng Mọt tin rằng chả mấy game thủ muốn sử dụng loại phím này khi chơi game.
Một khi tín hiệu đã được gửi đến phần mềm, có vô vàn vấn đề có thể tạo ra độ trễ cho bạn. Nhà thiết kế bàn phím Spinelli nói rằng người ta có thể tối ưu hóa firmware của bàn phím để đến sát giới hạn của phần cứng hoặc đánh lừa phần cứng, nhưng thường là bất khả thi với những game thủ bình thường. Thật ra, ngay cả những tính năng hào nhoáng như đèn LED, macro, dock màn hình rời,… cũng có thể ảnh hưởng đến độ trễ, và vì vậy nên chiếc bàn phím White Fox mà anh thiết kế riêng cho mình có hẳn một tiến trình riêng cho việc điều khiển đèn LED, nhằm giảm thiểu độ trễ mà bàn phím gây ra.
Một nhà thiết kế bàn phím khác là Chris Pate của Logitech đồng ý với nhận định trên, và nói rằng “có những sản phẩm trên thị trường sẽ phản ứng chậm hơn nhiều nếu bạn bật nhiều hiệu ứng ánh sáng. Vì vậy, vấn đề là phải thiết kế hợp lý. Nếu bạn muốn làm một sản phẩm hiệu năng cao, bạn phải bắt đầu với (thiết kế) và không làm những điều ảnh hưởng đến hiệu năng.”
Sau đó, Windows và các tựa game bạn đang chạy cũng như phần cứng bạn sử dụng sẽ tạo ra khoảng thời gian latency riêng của chúng. Một ví dụ hết sức đơn giản: ngay cả khi game chạy “mượt như nhung” ở tốc độ 60 khung hình/giây, bạn cũng phải chờ 16,67 mili giây giữa hai khung hình. Rồi chúng ta còn phải tính đến thời gian để card đồ họa dựng nên khung hình đó, thời gian để nó được gửi đến màn hình, thời gian để màn hình xử lý khung hình đó với những hiệu ứng mà bạn chọn như Gaming Mode, FPS Mode, RTS Mode, vân vân và vân vân.
Và thế là sau 43 năm không ngừng tiến bộ, máy tính của chúng ta chạy với những CPU có số transistor nhiều gấp 500.000 lần, được lắp thêm những phần cứng mà chiếc Apple II có mơ cũng không thấy như GPU khủng và ổ đĩa SSD, nhưng thời gian mà bạn phải chờ từ khi bấm nút đến khi thấy kết quả lại dài ra.
Với game thủ, việc kết nối từ mình đến server game có ping trên 30 mili giây đã là một thảm họa, nhưng độ trễ do các linh kiện điện tử gây ra còn là một vấn đề đau đầu hơn với những người phát triển game. Những tựa game âm nhạc đòi hỏi game thủ phải bấm nút chính xác vào một khung thời gian rất hẹp như Audition, Guitar Hero, Rhythm Heaven,… đòi hỏi game thủ bắt nhịp trong một phần nhỏ của giây, nên nếu độ trễ này quá cao và không được bù đắp một cách khéo léo, trải nghiệm của game thủ sẽ bị phá hỏng, các pha đập phím quăng chuột sẽ xảy ra và những tiếng chửi thề sẽ tuôn trào như suối chảy.
Vì vậy, hầu hết các tựa game âm nhạc đều được tích hợp các công cụ hoặc tính năng cân chỉnh có khả năng bù đắp độ trễ này. Cách hoạt động của nó rất đơn giản: nếu bạn bấm nút trong khung thời gian chấp nhận được, bài nhạc sẽ vẫn phát bình thường và sau đó một nhịp, game sẽ phát ra âm thanh báo hiệu bạn đã bấm đúng lúc. Nếu bạn bấm hụt, nốt nhạc đó sẽ vẫn được phát ra nhưng lập tức bị “khóa mõm” và tiếng động báo hiệu sai lầm sẽ được phát đè lên nó. Đây chính là cách mà Harmonix sử dụng trong các tựa game Guitar Hero của mình bởi nó là một tựa game console và phải chạy được trên nhiều loại loa có những độ trễ khác nhau.
Rhythm Heaven, tựa game âm nhạc cho Nintendo DS có cách tiếp cận đơn giản hơn khi nó chỉ cần phát âm thanh báo hiệu bấm chính xác, còn nếu bạn bấm sai thì nó không phát âm thanh bởi game chỉ chạy trên Nintendo DS và độ trễ của loa đã được biết trước. Rhythm Doctor khác đi một chút vì nó chạy trên Windows với độ trễ cao, buộc nhà phát triển phải để âm thanh này phát ra trễ hơn một nhịp, trùng với các nốt trầm để đánh lừa giác quan của game thủ và tạo ra cảm giác hài lòng cho người chơi.
Game âm nhạc đã vậy, game bắn súng – nhất là những tựa game đối kháng multiplayer – càng phải chú trọng độ trễ hơn nữa. Bạn có thể dễ dàng cảm nhận được độ trễ này bằng bản demo tại đây. Cách dùng rất đơn giản: bấm nút Space để điều khiển khối vuông xanh nhảy và tránh các chướng ngại màu đỏ, dùng phím mũi tên trái / phải để giảm / tăng độ trễ 20 mili giây. Ở độ trễ 100 mili giây, bạn sẽ cảm thấy rất khó chịu khi khối vuông của mình luôn phản ứng chậm rõ rệt sau khi đã ấn nút Space, và nếu các khối vuông đỏ có thể bóp cò súng, nhân vật của bạn sẽ xuống mồ trước khi bạn kịp nhảy lên!
Hi vọng rằng với bài viết này, Mọt đã đem lại cho các bạn những thông tin thú vị về lý do tại sao một PC hiện đại lại có phần chậm hơn chiếc máy Apple II ra mắt gần nửa thế kỷ trước. Nếu bạn bất ngờ nhận ra rằng chiếc PC gaming khủng của mình bỗng có cảm giác chậm chạp hơn sau bài viết này, xin chúc mừng vì bạn đã nhận ra sự thật bị ẩn giấu bấy lâu nay!