Kiến trúc x86 có được thiết kế đặc biệt để hoạt động với bàn phím trong khi ARM dự kiến là thiết bị di động không? Sự khác biệt chính giữa hai là gì?
Kiến trúc x86 có được thiết kế đặc biệt để hoạt động với bàn phím trong khi ARM dự kiến là thiết bị di động không? Sự khác biệt chính giữa hai là gì?
Câu trả lời:
ARM
là một kiến trúc RISC (Tính toán bộ hướng dẫn giảm) trong khi x86
là kiến trúc CISC (Tính toán tập lệnh phức tạp).
Sự khác biệt cốt lõi giữa những người trong khía cạnh này là các lệnh ARM chỉ hoạt động trên các thanh ghi với một vài hướng dẫn để tải và lưu dữ liệu từ / vào bộ nhớ trong khi x86 cũng có thể hoạt động trực tiếp trên bộ nhớ. Cho đến khi v8 ARM là một kiến trúc 32 bit nguyên gốc, thiên về các hoạt động bốn byte so với các hoạt động khác.
Vì vậy, ARM là một kiến trúc đơn giản hơn, dẫn đến diện tích silicon nhỏ và nhiều tính năng tiết kiệm năng lượng trong khi x86 trở thành một con thú quyền lực về cả tiêu thụ năng lượng và sản xuất.
Về câu hỏi về " Kiến trúc x86 có được thiết kế đặc biệt để hoạt động với bàn phím trong khi ARM dự kiến sẽ là thiết bị di động không? ". x86
không được thiết kế đặc biệt để làm việc với bàn phím không ARM
dành cho thiết bị di động. Tuy nhiên, một lần nữa vì các lựa chọn kiến trúc cốt lõi thực sự x86 cũng có hướng dẫn để làm việc trực tiếp IO
trong khi ARM thì không. Tuy nhiên với các bus IO chuyên dụng như USB, nhu cầu về các tính năng như vậy cũng đang dần biến mất.
Nếu bạn cần một tài liệu để trích dẫn, đây là những gì Hướng dẫn lập trình viên sê-ri Cortex-A (4.0) nói về sự khác biệt giữa các kiến trúc RISC và CISC:
Bộ xử lý ARM là bộ xử lý RISC được giảm hướng dẫn (RISC).
Bộ xử lý máy tính phức hợp (CISC), như x86, có bộ hướng dẫn phong phú có khả năng thực hiện những việc phức tạp chỉ với một lệnh. Các bộ xử lý như vậy thường có số lượng đáng kể logic bên trong giải mã các hướng dẫn của máy thành chuỗi các hoạt động bên trong (microcode).
Ngược lại, các kiến trúc RISC có số lượng hướng dẫn mục đích chung nhỏ hơn, có thể được thực hiện với các bóng bán dẫn ít hơn đáng kể, làm cho silicon rẻ hơn và tiết kiệm điện hơn. Giống như các kiến trúc RISC khác, lõi ARM có số lượng lớn các thanh ghi mục đích chung và nhiều lệnh được thực thi trong một chu kỳ. Nó có các chế độ địa chỉ đơn giản, trong đó tất cả các địa chỉ tải / lưu trữ có thể được xác định từ nội dung đăng ký và các trường hướng dẫn.
Công ty ARM cũng cung cấp một bài báo có tiêu đề Kiến trúc, Bộ xử lý và Điều khoản phát triển thiết bị mô tả cách các điều khoản đó áp dụng cho tính kinh doanh của họ.
Một ví dụ so sánh kiến trúc tập lệnh:
Ví dụ: nếu bạn cần một số khối so sánh bộ nhớ tạm thời trong ứng dụng của bạn (được tạo bởi trình biên dịch, bỏ qua chi tiết), đây là cách nó có thể trông như thế nào trên x86
repe cmpsb /* repeat while equal compare string bytewise */
trong khi ở ARM
dạng ngắn nhất có thể trông giống như (không kiểm tra lỗi, v.v.)
top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2 /* subtract r2 from r3 and put result into r2 */
beq top /* branch(/jump) if result is zero */
sẽ cung cấp cho bạn một gợi ý về cách các bộ hướng dẫn RISC và CISC khác nhau về độ phức tạp.
Không có bất cứ thứ gì cụ thể cho bàn phím hoặc thiết bị di động, ngoài thực tế là trong nhiều năm, ARM đã có một lợi thế khá lớn về mức tiêu thụ năng lượng, khiến nó trở nên hấp dẫn đối với tất cả các loại thiết bị chạy bằng pin.
Theo như sự khác biệt thực tế: ARM có nhiều thanh ghi hơn, được hỗ trợ cho hầu hết các hướng dẫn từ lâu trước khi Intel bổ sung và từ lâu đã kết hợp tất cả các loại kỹ thuật (gọi chúng là "thủ thuật", nếu bạn thích) để tiết kiệm năng lượng ở hầu hết mọi nơi có thể.
Cũng có một sự khác biệt đáng kể trong cách hai hướng dẫn mã hóa. Intel sử dụng mã hóa độ dài biến khá phức tạp trong đó một lệnh có thể chiếm bất cứ nơi nào từ 1 đến 15 byte. Điều này cho phép các chương trình khá nhỏ, nhưng làm cho việc giải mã lệnh tương đối khó khăn (như trong: giải mã các lệnh nhanh song song giống như một cơn ác mộng hoàn toàn).
ARM có hai chế độ mã hóa lệnh khác nhau: ARM và THUMB. Trong chế độ ARM, bạn có quyền truy cập vào tất cả các hướng dẫn và mã hóa cực kỳ đơn giản và nhanh chóng để giải mã. Thật không may, mã chế độ ARM có xu hướng khá lớn, do đó, khá phổ biến khi một chương trình chiếm khoảng gấp đôi bộ nhớ so với mã Intel. Chế độ ngón tay cái cố gắng giảm thiểu điều đó. Nó vẫn sử dụng mã hóa hướng dẫn khá thông thường, nhưng giảm hầu hết các lệnh từ 32 bit xuống 16 bit, chẳng hạn như bằng cách giảm số lượng thanh ghi, loại bỏ sự chiếm hữu từ hầu hết các hướng dẫn và giảm phạm vi của các nhánh. Ít nhất trong kinh nghiệm của tôi, điều này vẫn không thường cung cấp cho khámã hóa dày đặc như mã x86 có thể nhận được, nhưng nó khá gần và việc giải mã vẫn khá đơn giản và dễ hiểu. Mật độ mã thấp hơn có nghĩa là bạn thường cần ít nhất một chút bộ nhớ và (nói chung là nghiêm túc hơn) bộ đệm lớn hơn để có hiệu suất tương đương.
Đã có lúc Intel chú trọng nhiều hơn vào tốc độ so với mức tiêu thụ năng lượng. Họ bắt đầu nhấn mạnh tiêu thụ năng lượng chủ yếu vào bối cảnh của máy tính xách tay. Đối với máy tính xách tay, mục tiêu năng lượng điển hình của họ là ở mức 6 watt cho một máy tính xách tay khá nhỏ. Gần đây hơn ( nhiều gần đây hơn) mà họ đã bắt đầu nhắm mục tiêu các thiết bị di động (điện thoại, máy tính bảng, vv) Đối với thị trường này, họ đang tìm kiếm một vài watt hoặc lâu hơn ở hầu hết. Họ dường như đang làm khá tốt điều đó, mặc dù cách tiếp cận của họ khác biệt rất nhiều so với ARM, nhấn mạnh công nghệ chế tạo trong đó ARM chủ yếu nhấn mạnh vào kiến trúc vi mô (không ngạc nhiên khi xem xét rằng ARM bán thiết kế và để chế tạo cho người khác).
Tùy thuộc vào tình huống, mức tiêu thụ năng lượng của CPU thường quan trọng hơn mức tiêu thụ năng lượng của nó. Ít nhất là khi tôi sử dụng các thuật ngữ, mức tiêu thụ năng lượng đề cập đến việc sử dụng năng lượng trên cơ sở tức thời (ít nhiều). Tuy nhiên, tiêu thụ năng lượng bình thường hóa cho tốc độ, vì vậy, nếu (ví dụ) CPU A tiêu thụ 1 watt trong 2 giây để thực hiện công việc và CPU B tiêu thụ 2 watt trong 1 giây để thực hiện cùng một công việc, cả hai CPU đều tiêu thụ cùng một lượng năng lượng (hai watt giây) để thực hiện công việc đó - nhưng với CPU B, bạn nhận được kết quả nhanh gấp đôi.
Bộ xử lý ARM có xu hướng làm rất tốt về mặt tiêu thụ điện năng. Vì vậy, nếu bạn cần thứ gì đó cần "sự hiện diện" của bộ xử lý gần như liên tục, nhưng không thực sự làm được nhiều việc, chúng có thể hoạt động khá tốt. Ví dụ: nếu bạn đang thực hiện hội nghị video, bạn thu thập một vài phần nghìn giây dữ liệu, nén nó, gửi nó, nhận dữ liệu từ người khác, giải nén nó, phát lại và lặp lại. Ngay cả một bộ xử lý thực sự nhanh cũng không thể dành nhiều thời gian để ngủ, vì vậy đối với các tác vụ như thế này, ARM thực sự rất tốt.
Bộ xử lý của Intel (đặc biệt là bộ xử lý Atom của họ, thực sự dành cho các ứng dụng năng lượng thấp) cực kỳ cạnh tranh về mặt tiêu thụ năng lượng. Mặc dù chúng chạy gần hết tốc độ, chúng sẽ tiêu thụ nhiều năng lượng hơn hầu hết các bộ xử lý ARM - nhưng chúng cũng hoàn thành công việc nhanh chóng, vì vậy chúng có thể quay lại ngủ sớm hơn. Nhờ đó, họ có thể kết hợp thời lượng pin tốt với hiệu năng tốt.
Vì vậy, khi so sánh cả hai, bạn phải cẩn thận về những gì bạn đo lường, để chắc chắn rằng nó phản ánh những gì bạn thực sự quan tâm. ARM làm rất tốt việc tiêu thụ năng lượng, nhưng tùy thuộc vào tình huống, bạn có thể dễ dàng quan tâm nhiều hơn đến mức tiêu thụ năng lượng hơn là tiêu thụ năng lượng tức thời.
Bổ sung cho đoạn đầu tiên của Jerry Coffin . Tức là, thiết kế ARM cho mức tiêu thụ điện năng thấp hơn.
Công ty ARM
, chỉ cấp phép cho công nghệ CPU. Họ không tạo ra chip vật lý. Điều này cho phép các công ty khác thêm các công nghệ ngoại vi khác nhau, thường được gọi là SOC hoặc hệ thống trên chip. Cho dù thiết bị là máy tính bảng, điện thoại di động hay hệ thống giải trí trong xe hơi. Điều này cho phép các nhà cung cấp chip điều chỉnh phần còn lại của chip cho một ứng dụng cụ thể. Điều này có thêm lợi ích,
ARM
hỗ trợ các nhà cung cấp SOC với AMBA , cho phép những người triển khai SOC mua ngoài các mô-đun của bên thứ 3; như Ethernet, bộ nhớ và bộ điều khiển ngắt. Một số nền tảng CPU khác hỗ trợ điều này, như MIPS , nhưng MIPS không có ý thức về sức mạnh.
Tất cả những điều này đều có lợi cho một thiết kế cầm tay / chạy bằng pin. Một số chỉ tốt xung quanh. Đồng thời, ARM
có một lịch sử của các thiết bị hoạt động bằng pin; Apple Newton , Psion Ban tổ chức . Các PDA phần mềm sở hạ tầng đã được thừa hưởng bởi một số công ty để tạo ra điện thoại thông minh các thiết bị loại. Mặc dù, những người đã phát minh lại GUI để sử dụng với điện thoại thông minh đã thành công hơn .
Sự gia tăng của các Open source
bộ công cụ và operating systems
cũng tạo điều kiện cho các SOC
chip khác nhau . Một tổ chức đóng sẽ có vấn đề khi cố gắng hỗ trợ tất cả các thiết bị khác nhau có sẵn cho ARM. Hai nền tảng di động phổ biến nhất là Andriod và OSx / IOS, dựa trên hệ điều hành Linux và FreeBSD, Mach và NetBSD . Open Source
giúp các SOC
nhà cung cấp cung cấp hỗ trợ phần mềm cho bộ chip của họ.
Hy vọng, tại sao x86 được sử dụng cho bàn phím là hiển nhiên. Nó có phần mềm, và quan trọng hơn là những người được đào tạo để sử dụng phần mềm đó. Netwinder là một ARM
hệ thống ban đầu được thiết kế cho bàn phím . Ngoài ra, nhà sản xuất hiện đang xem xét ARM64 cho thị trường máy chủ. Điện / nhiệt là một mối quan tâm tại các trung tâm dữ liệu 24/7.
Vì vậy, tôi muốn nói rằng hệ sinh thái phát triển xung quanh những con chip này cũng quan trọng như các tính năng như tiêu thụ điện năng thấp. ARM
đã phấn đấu cho năng lượng thấp, tính toán hiệu năng cao hơn trong một thời gian (giữa đến cuối những năm 1980) và họ có rất nhiều người trên tàu.
Lưu ý1: Nhiều chip cần trình điều khiển xe buýt để liên lạc với nhau ở điện áp và ổ đĩa đã biết. Ngoài ra, các chip riêng biệt thường cần các tụ điện hỗ trợ và các thành phần nguồn khác có thể được chia sẻ trong hệ thống SOC .
ARM giống như một chiếc xe thể thao của Ý:
X86 giống như một chiếc xe cơ bắp của Mỹ:
Tóm lại: x86 dựa trên thiết kế từ năm 1974 và hoạt động tốt trên đường thẳng (nhưng sử dụng nhiều nhiên liệu). Cánh tay sử dụng ít nhiên liệu, không làm chậm cho các góc (nhánh).
Ẩn dụ hơn, đây là một số khác biệt thực sự.
Kiến trúc ARM ban đầu được thiết kế cho máy tính cá nhân Acorn (Xem Acorn Archimedes , khoảng năm 1987 và RiscPC ), cũng giống như các máy tính cá nhân dựa trên bàn phím giống như các mẫu máy tính IBM dựa trên x86. Chỉ các triển khai ARM sau này chủ yếu nhắm vào phân khúc thị trường di động và nhúng.
Ban đầu, các CPU RISC đơn giản có hiệu năng tương đương có thể được thiết kế bởi các nhóm kỹ thuật nhỏ hơn nhiều (xem Berkeley RISC ) so với các CPU làm việc trong quá trình phát triển x86 tại Intel.
Nhưng, ngày nay, các chip ARM nhanh nhất có các đơn vị điều phối lệnh không theo thứ tự rất phức tạp được thiết kế bởi các nhóm kỹ thuật lớn và lõi x86 có thể có thứ gì đó giống như lõi RISC được cung cấp bởi một đơn vị dịch thuật lệnh.
Vì vậy, bất kỳ sự khác biệt hiện tại giữa hai kiến trúc đều liên quan nhiều hơn đến nhu cầu thị trường cụ thể của các hốc sản phẩm mà các nhóm phát triển đang nhắm mục tiêu. .