Cụm từ Phần mềm có thể thay thế phần cứng là gì?


90

Nghiên cứu khóa học cho người mới bắt đầu về giao diện phần cứng / phần mềm và hệ điều hành, thường đưa ra chủ đề nếu thay thế một số bộ phận phần cứng bằng phần mềm và ngược lại. Tôi không thể tạo kết nối.


7
CPU có mục đích chung có các bộ hướng dẫn cho phép chúng thực hiện các hoạt động logic tùy ý. Phần mềm được biên dịch thành một luồng các lệnh được thực thi bởi tập lệnh CPU. Đây là một ví dụ về làm công cụ "trong phần mềm". Ngược lại, một thuật toán phần mềm có thể được thực thi trực tiếp "trong phần cứng" bằng cách tạo ra các mảng logic chuyên dụng trong silicon.
Chimera

12
"Kết nối" là cả hai phần mềm và phần cứng đều thực thi, bằng các phương tiện logic khác nhau.
Chimera

14
Nó có nghĩa chính xác những gì nó nói. Phần mềm và phần cứng làm công cụ. Đôi khi bạn có thể làm mọi thứ với phần mềm hoặc phần cứng, vì vậy bạn chọn một thứ. Sau đó, bạn tự hỏi liệu nó sẽ tốt hơn để làm điều đó với người khác.
Immibis

4
Rõ ràng bạn không thể thay thế tất cả phần cứng bằng phần mềm - không có lý do gì để tạo màn hình phần mềm, chuột hoặc bàn phím. (Trừ khi chúng là ảo)
miễn phí

2
Hãy xem xét rằng chúng tôi sử dụng (phần mềm) Hệ điều hành vì: 1) Viết HĐH trực tiếp bằng phần cứng sẽ cần một con chip cực kỳ phức tạp, sẽ tốn rất nhiều 2) Phần cứng không thể cập nhật dễ dàng, do đó HĐH phần cứng sẽ không nhận được cập nhật. Nếu một vấn đề bảo mật được tìm thấy, nó không thể được vá, v.v.
Bakuriu

Câu trả lời:


176

Tôi nghĩ rằng kết nối cơ bản mà các câu trả lời khác bị thiếu là đây:

Với một máy tính đa năng (ví dụ CPU), người ta có thể lập trình cho nó thực hiện khá nhiều tính toán mà chúng ta đã xác định. Tuy nhiên, phần cứng chuyên dụng có thể hoạt động tốt hơn hoặc có thể không cung cấp bất kỳ giá trị nào.

(câu trả lời này tập trung vào xử lý máy tính để bàn và sử dụng các ví dụ từ tên miền đó)

Thay thế phần mềm bằng phần cứng

Nếu bạn đủ tuổi để nhớ chơi game trên PC vào giữa những năm 1990, bạn có thể nhớ các game FPS như Quake . Nó bắt đầu là "phần mềm được kết xuất", nghĩa là CPU đã thực hiện các tính toán cần thiết để kết xuất đồ họa. Trong khi đó, CPU cũng phải thực hiện xử lý đầu vào, xử lý âm thanh, xử lý AI, v.v ... Nó đánh thuế rất cao vào tài nguyên CPU. Ngoài ra, xử lý đồ họa không phù hợp với CPU chính (lúc đó hoặc bây giờ). Nó có xu hướng là một nhiệm vụ song song rất cao, đòi hỏi nhiều lõi hơn cả CPU cao cấp hiện đại (8).

Chúng tôi đã chuyển xử lý đồ họa từ phần mềm sang phần cứng: nhập 3dfx VoodooNvidia TNT (nay là GeForce ). Đây là những card đồ họa chuyên dụng giảm tải xử lý từ CPU sang GPU. Điều này không chỉ làm tăng khối lượng công việc, cung cấp nhiều tài nguyên điện toán hơn để thực hiện cùng một lượng công việc, các card đồ họa là phần cứng chuyên dụng có thể khiến đồ họa 3D nhanh hơn nhiều và có nhiều tính năng hơn CPU.

Chuyển nhanh đến thời kỳ hiện đại và đồ họa không phải CPU được yêu cầu trên máy tính để bàn. Ngay cả hệ điều hành cũng không thể hoạt động nếu không có GPU. Điều quan trọng là CPU thực sự tích hợp GPU ngay bây giờ. 1

Thay thế phần cứng bằng phần mềm

Quay lại khi DVD hoàn toàn mới, bạn có thể cài đặt ổ đĩa DVD trong máy tính để bàn của mình. Tuy nhiên, các CPU trong ngày không đủ mạnh để giải mã các luồng video và video DVD mà không bị vấp. Lúc đầu, cần có một bảng PCI chuyên dụng để thực hiện giải mã. Đây là phần cứng chuyên dụng được chế tạo riêng để giải mã định dạng DVD và không có gì khác. Giống như với đồ họa 3D, nó không chỉ cung cấp nhiều tài nguyên điện toán hơn mà còn được tùy chỉnh cho nhiệm vụ, giúp phát lại DVD mượt mà.

Khi CPU phát triển mạnh hơn nhiều, việc giải mã DVD "trong phần mềm" trở nên khả thi, có nghĩa là "trên một máy tính đa năng". Ngay cả với bộ xử lý kém hiệu quả hơn, nó vẫn có đủ tốc độ thô và tối ưu hóa đường ống để giúp phát lại DVD hoạt động theo mong đợi của người dùng.

Bây giờ chúng ta có CPU hàng trăm hoặc thậm chí hàng ngàn lần mạnh hơn 2 như chúng tôi đã có khi DVD đã được giới thiệu. Khi Blu-ray xuất hiện, chúng tôi không bao giờ cần phần cứng chuyên dụng, vì phần cứng đa năng không đủ mạnh để xử lý công việc.

Làm cả hai

Các CPU Intel hiện đại có các hướng dẫn chuyên biệt để mã hóa và giải mã H.264 . Đây là một phần của xu hướng mà các CPU có mục đích chung đang đạt được các chức năng chuyên biệt, tất cả trong cùng một chip. Chúng tôi không cần một bảng PCI Express riêng để giải mã H.264 hiệu quả như với DVD từ rất sớm, vì CPU có chứa mạch tương tự.


1 GPU dùng để chỉ bộ xử lý được thiết kế đặc biệt để thực hiện các tính toán đồ họa. Các card đồ họa 2D cũ hơn không phải là GPU: chúng chỉ đơn giản là bộ đệm khung với các bộ xử lý tín hiệu để nói chuyện với màn hình. Sự khác biệt là GPU chứa bộ xử lý chuyên dụng vượt trội ở một số loại tính toán nhất định và theo thời gian, giờ đây chúng thực sự có thể tự lập trình (shader). Phần cứng đồ họa luôn chứa các mạch chuyên dụng cần thiết để chuyển đổi dữ liệu trong bộ đệm khung thành định dạng có thể xuất qua cáp (VGA, DVI, HDMI, DisplayPort) và được hiểu bởi màn hình. Điều đó không liên quan đến các cuộc thảo luận về việc giảm tải các tính toán cho phần cứng chuyên dụng.

2 DVD-Video được phát hành vào năm 1997, tại thời điểm Pentium 2 cũng mới được phát hành. Đây là thời điểm CPU tăng sức mạnh nhanh chóng: người ta có thể xem xét một máy tính P2 mới với bộ giải mã DVD hoặc cài đặt một chiếc trong một chiếc P1 cũ hơn một chút. So sánh với thế hệ 6 Core i7 hiện đại sử dụng danh sách MIPS của Wikipedia và CPU hiện đại có tốc độ nhanh hơn từ 590 đến 1.690 lần. Điều này một phần nhờ vào tốc độ xung nhịp, nhưng cũng chuyển sang nhiều lõi là tiêu chuẩn cũng như CPU ​​hiện đại làm nhiều công việc hơn trên mỗi lõi trên mỗi xung nhịp. Cũng có liên quan là khi công nghệ tiến bộ, Intel (người thống trị thị trường máy tính để bàn và máy chủ x86) bổ sung các hướng dẫn chuyên biệt để giúp tăng tốc các hoạt động mà người dùng máy tính để bàn muốn thực hiện (ví dụ như giải mã video).


Các card đồ họa 2d cũ hơn không phải là GPU theo nghĩa được hiểu ngày nay, nhưng phần cứng chuyên dụng cho các chức năng đồ họa đã có rất nhiều. Một blitter có thể nhanh chóng sao chép một lượng lớn bộ nhớ từ vị trí này sang vị trí khác, có thể sử dụng một số thao tác logic đơn giản để kết hợp nó với dữ liệu tại vị trí đích. Điều này đã có mặt trong các thẻ 2d điển hình của thời đại VGA / SVGA. Các máy tính khác có phần cứng 2d chuyên dụng khác, chẳng hạn như các phần cứng trong máy tính gia đình và máy chơi game của thập niên 80 và 90.
Sebastian Redl

127

Tôi ngạc nhiên không ai đề cập đến một trong những ví dụ rõ ràng nhất: đài phát thanh được xác định bằng phần mềm.

Nếu bạn lấy một chiếc điện thoại thông minh ngày nay trở lại thời gian khoảng 50 năm và đưa nó cho một kỹ sư có thẩm quyền từ giữa những năm 1960, anh ta sẽ có thể hiểu được hầu hết về nó. Đó là một siêu máy tính có thể được giảm xuống một cái gì đó phù hợp với túi của bạn? Kiểm tra. Rằng bạn có thể có một chiếc tivi màu chất lượng cực cao trong gói? Kiểm tra. Đó là nó nhanh hơn nhiều, có nhiều lưu trữ hơn, vv, so với máy tính của thời đại? Kiểm tra. Phần mềm đó đã được viết có thể thực hiện các chức năng phức tạp như vậy? Kiểm tra.

Nhưng nói rằng kỹ sư có thẩm quyền rằng oh, bằng cách này, gói này chứa một tập hợp các máy phát vô cùng hiệu quả và thu nhạy cảm: một máy thu phát trải phổ kỹ thuật số mà có thể đồng thời truyền và nhận trên nhiều kênh khác nhau, giao tiếp với một tháp cơ sở hạ tầng mà bạn có thể dặm ; một bộ thu phát kỹ thuật số khác truyền dữ liệu tốc độ cao với một trạm cơ sở ở đâu đó trong tòa nhà; một bộ thu phát kỹ thuật số khác giao tiếp với các thiết bị đeo được công suất thấp; và một máy thu khác nhận tín hiệu yếu từ vệ tinh trên quỹ đạo trung gian ... anh ta sẽ gọi bạn là kẻ nói dối.

Anh ta sẽ gọi bạn là kẻ nói dối bởi vì anh ta biết rằng các máy thu có độ nhạy cao như vậy không thể được xây dựng mà không có vô số mạch điều chỉnh, lọc ra các trạm lân cận và chọn tín hiệu quan tâm. Và các mạch như vậy đòi hỏi các bộ phận có kích thước được xác định nhiều hơn bởi vật lý hơn là công nghệ, chẳng hạn như tụ điện và cuộn cảm.

Sau đó, bạn sẽ phải giải thích rằng trong một đài phát thanh hiện đại, hầu hết điều đó được thực hiện trong phần mềm. Rằng sau khi tín hiệu đến từ anten được chuyển đổi thành tần số trung gian và được khuếch đại một chút, sau đó nó được lấy mẫu bằng bộ chuyển đổi tương tự sang số; và xử lý tiếp theo diễn ra trong một bộ xử lý tín hiệu số. Tất cả các điều chỉnh, lọc đó, được sử dụng để yêu cầu hàng tấn phần cứng trong một đài phát thanh cao cấp cũ có thể được mô tả dưới dạng các phương trình toán học; và nếu điều đó có thể được thực hiện, các phương trình đó có thể được DSP thực thi trong thời gian thực.

Điều này, tôi nghĩ, là một trong những ví dụ rõ ràng nhất về phần mềm thay thế phần cứng. Kết quả là, chúng ta mang theo điện thoại thông minh trong túi, thậm chí với một kỹ sư có năng lực của thập niên 1960, sẽ giống như một trò ảo thuật.

So với điều này, ý tưởng cho rằng logic đơn giản của dụng cụ mở cửa nhà để xe, cân phòng tắm điện tử hoặc điều khiển TV hiện nay được triển khai bằng vi điều khiển và phần mềm đa năng thay vì phần cứng tùy chỉnh gần như không đáng kể (và chắc chắn nó sẽ rất nhiều dễ hiểu hơn đối với kỹ sư giả định thập niên 1960 của chúng tôi so với radio được xác định bằng phần mềm.)


16
Câu trả lời không bị đánh giá thấp. Mặc dù tôi có một nền tảng nhỏ về điện tử và đã tự mình chế tạo một vài thiết bị vô tuyến, tôi không bao giờ biết rằng việc điều chỉnh tín hiệu được thực hiện bởi phần mềm ngày nay. Tâm trí của tôi đang đi chuối cố gắng tưởng tượng chính xác làm thế nào điều này được thực hiện.
Machado

5
@Machado Nếu bạn từng làm một số thiết kế điện tử nghiêm túc, bạn sẽ nhanh chóng nhận ra rằng về cơ bản đó là tất cả các phương trình toán học. Thiết bị điện tử vật lý có thể cộng, trừ, chia, nhân, phân biệt, tích hợp, v.v ... Chỉ là thay vì tụ điện vật lý để lọc tất cả nhiễu tần số thấp, nó được thực hiện theo mã. Tín hiệu vật lý được "nạp" vào phần mềm thông qua một phần cứng chuyên dụng gọi là bộ chuyển đổi tương tự sang số.
CHendrix

6
@Machado dspguide.com/pdfbook.htmlm Sách giáo khoa này có rất nhiều ví dụ về mã giả. Đó là một viên ngọc quý.
brian_o

4
@Machado Đừng quên lấy một đài phát thanh được xác định bằng phần mềm (với giá khoảng 20 đô la) và bắt đầu chơi với nó !
Michael Hampton

5
Đừng nói với anh chàng từ những năm 1960 rằng những gì bạn chủ yếu sử dụng tất cả sức mạnh và tính năng của máy tính đó; là để đăng hình ảnh về thức ăn của bạn, phát trực tuyến video mèo và săn Pokemon ...
Baard Kopperud

42

Hãy xem xét mạch này:

nhập mô tả hình ảnh ở đây

Nó là Flip Flop, hay còn gọi là Multivibrator. Nó có thể được thay thế bằng mã này:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;

1
cảm ơn bạn rất nhiều vì câu trả lời của bạn và đã sửa bài! Bạn có cuốn sách nào để gợi ý để tìm hiểu thêm một chút về nó không? Gabriele
Gabriele Scarlatti

11
kiểm tra mã: Ngôn ngữ ẩn của phần cứng và phần mềm máy tính . Nó bao gồm quá trình chuyển đổi độc đáo từ phần cứng sang phần mềm
Igor Milla

4
@igormilla Tôi có thể bảo đảm cho đề nghị của bạn. Tôi hiện đang đọc cuốn sách và đó là cuốn sách hay nhất về kiến ​​trúc máy tính mà tôi từng đọc. Nó thực hiện một công việc tuyệt vời là giải thích rõ ràng và chính xác từng khái niệm, mà không đẩy quá nhiều thuật ngữ kỹ thuật xuống cổ họng của bạn. Tôi rất muốn giới thiệu nó cho bất cứ ai muốn hiểu sâu hơn về mối quan hệ giữa phần cứng và phần mềm.
Christian Dean

1
@igormilla, tìm thấy tốt đẹp! Hạnh phúc cho tôi, nó có sẵn như là một phần của Safari Books Online , vì vậy tôi có thể bắt đầu đọc ngay bây giờ. :) (Đọc bình luận của tôi một lần nữa trước khi đăng: nghe có vẻ như một quảng cáo, nhưng tôi chỉ là một khách hàng hài lòng. Tôi không tìm thấy bất kỳ cuốn sách kỹ thuật được đề xuất nào trong năm ngoái mà tôi không thể duyệt ngay lập tức hoặc thậm chí đọc toàn bộ trực tuyến.)
Wildcard

29

Nó có nghĩa chính xác những gì nó nghe như.

Một ví dụ đặc biệt nổi tiếng là Ổ đĩa II được thiết kế bởi Steve Wozniak cho Apple II:

Sự đổi mới chính là làm cho bộ điều khiển nhỏ gọn bằng cách sử dụng phần mềm trong khi các đối thủ cạnh tranh dựa vào phần cứng. Như Bill Fernandez, khi đó là một kỹ thuật viên điện tử tại Apple, nhớ lại, "lợi thế chính của thiết kế [Wozniak] là nó chỉ sử dụng sáu chip thay vì 60 đến 70 thông thường

Một ví dụ khác có lẽ bạn quen thuộc hơn: Trình giả lập. Họ thay thế toàn bộ bộ phần cứng (và phần mềm) hoàn toàn bằng phần mềm. CPU, chip điều khiển khác nhau, thậm chí cả thiết bị lưu trữ.

Bây giờ bạn không thể loại bỏ tất cả phần cứng, cuối cùng bạn cần một cái gì đó để chạy phần mềm. Nhưng nói chung, bất kỳ tác vụ logic nào bạn có thể thực hiện trong phần cứng cũng có thể được thực hiện trong phần mềm (hiệu suất có thể không giống nhau, có thể chậm hơn, nhanh hơn hoặc trong các tình huống khác nhau, tùy thuộc vào phần cứng cơ bản và việc triển khai).


Vì vậy, điều duy nhất bạn luôn cần là ít nhất một bộ xử lý?
Gabriele Scarlatti

3
@GabrieleScarlatti Bạn sẽ cần thêm một chút, cụ thể, các thiết bị I / O cần phải là phần cứng (nhưng bộ điều khiển có thể là phần mềm!) Và bộ nhớ cần phải là phần cứng. Các kết nối giữa chúng cần phải là phần cứng, nhưng logic cần thiết bị hạn chế. Dây đơn giản nếu bạn có đủ chân, thanh ghi dịch chuyển đơn giản hơn một chút hoặc các thiết bị tương tự nếu bạn không có đủ chân.
8bittree

Ahaha vâng tôi hơi quá gần đúng, bạn có thể gợi ý một vài cuốn sách hay để tìm hiểu thêm về nó không? Cảm ơn bạn rất nhiều vì câu trả lời!
Gabriele Scarlatti

1
Câu trả lời tốt nhất cho đến nay trong chủ đề này là "trình giả lập".
Machado

1
Không thể nói về chủ đề này mà không đề cập đến Woz!
James R.

11

Một lĩnh vực khác trong đó điều này là đúng là tổng hợp.

Bộ tổng hợp ban đầu là phần cứng tương tự 100% tạo ra dạng sóng trực tiếp sau đó sửa đổi chúng thông qua mạch (bộ lọc, bộ khuếch đại, v.v.). Có thể tổng hợp kỹ thuật số âm thanh, nhưng nó đòi hỏi tài nguyên điện toán mà người bình thường không thể mua được (một máy tính lớn thực tế và phần cứng chuyển đổi kỹ thuật số sang tương tự tùy chỉnh).

Khi chế tạo chip được cải thiện, các bộ tổng hợp đã chuyển từ các chip tổng hợp thuần túy sang các chip tổng hợp được điều khiển bởi các tín hiệu số nhưng vẫn tạo ra các tín hiệu tương tự, sau đó chuyển sang tổng hợp kỹ thuật số thuần túy (phát lại mẫu, tổng hợp FM , tổng hợp phụ gia thực sự, v.v.).

Ngày nay, các bộ xử lý đủ rẻ và đủ nhanh để cho phép các lập trình viên tạo ra các phiên bản máy tính của bộ tổng hợp tương tự cổ điển nhân đôi chính xác hành vi của các mạch gốc bằng cách mô phỏng hành vi của họ trong thời gian thực - thực tế, điện thoại và máy tính bảng hiện có khả năng chạy đủ nhanh để chạy những sáng tạo lại; các Korg IMS-20 là một ví dụ.

Cả trình tổng hợp cổ điển và trình tổng hợp mới đều có sẵn dưới dạng plugin VST hoặc AU cho các chương trình âm thanh kỹ thuật số như Ableton Live, Logic hoặc Cubase và chúng cung cấp quyền truy cập vào trình tổng hợp cho những người không có không gian hoặc tiền để sử dụng họ

Chỉnh sửa: Tại thời điểm này tôi cũng nên đề cập đến VCVRack , mô phỏng tổng hợp mô-đun tương tự trong thời gian thực. Khá một bước tiến từ thời gian kết xuất nhiều giờ trong vài giây âm nhạc.


1
Một chiếc Atari 2600 năm 1977 có đủ mã lực CPU để tạo ra âm nhạc bốn giọng nói với phạm vi năm quãng tám, ngay cả khi còn hơn 39% thời gian CPU để tạo màn hình. Các bảng tra cứu cần thiết sẽ chiếm hơn một nửa hộp mực 4K (khoảng 2300 byte), nhưng dĩ nhiên là có thể hộp mực lớn hơn 4K. Một người có lẽ không thể có lối chơi phức tạp khủng khiếp khi chơi nhạc, nhưng một màn hình tiêu đề khá nhiều màu sắc với một văn bản cuộn sẽ là một khả năng rõ ràng >:*3.
supercat

Có, tôi đã bỏ ra khoảng 10? 20? nhiều năm phát triển để câu trả lời của tôi không biến thành tiểu thuyết. Điểm rất tốt! Tôi đã từng có một cái gì đó được gọi là ( Musicworks ) [ thinkgroupic.org/viewtopic.php?id=550] trên máy Mac 512K của tôi có thể xử lý 4 giọng nói, hầu như không.
Joe McMahon

68000 cần nhiều chu kỳ hơn để thực hiện mỗi lệnh so với 6502, nhưng với mã hóa phù hợp, việc tổng hợp bảng sóng bốn giọng nói sẽ khá hiệu quả. Tôi ước tính khoảng 240 chu kỳ / mẫu với tỷ lệ biên độ bằng cách sử dụng bảng 256 byte cho mỗi cài đặt âm lượng; loại bỏ tỷ lệ biên độ sẽ cạo thời gian đó bằng 56 chu kỳ / mẫu.
supercat

7

Trong thời gian trước, vết cắt khá rõ ràng. Hầu hết những thứ cần thực hiện nhanh chóng phải được thực hiện trong phần cứng. Lấy ví dụ một bộ đa năng tạo ra tần số. Cách đây không lâu, bạn cần một vài bóng bán dẫn, tụ điện và cuối cùng là thạch anh để tạo ra tần số (cố định). Bây giờ có những bộ vi điều khiển giá rẻ chỉ có giá vài xu hoặc hơn. Vì chúng rất nhanh, bạn có thể sử dụng chúng một cách dễ dàng để tạo ra một bộ đa năng. Và hơn nữa, bạn có thể dễ dàng kiểm soát thông qua phần mềm tần số để tạo ra ở đâu trong thời gian trước bạn cần để hàn phần cứng khác nhau. Mặc dù, đi qua một tần số nhất định (nhưng bây giờ khá cao) bạn vẫn cần phần cứng thuần túy. Vì vậy, bạn thấy, có một ranh giới giữa cả hai, nhưng phần bạn có thể giải quyết bằng phần mềm đang phát triển (theo cấp số nhân).

Chỉnh sửa trên thực tế Phần mềm có thể thay thế phần cứng Hệ thống không thực sự chính xác. Thực tế là phần cứng trở nên hùng mạnh đến mức bạn có thể sử dụng nó để chạy phần mềm mô phỏng phần cứng. Vì vậy, thay vì một vài bóng bán dẫn đơn giản nhưng được hàn tĩnh, bạn sử dụng hàng triệu bóng bán dẫn hiểu phần mềm. Vì vậy, thuật ngữ nên là "Phần cứng bây giờ có thể hiểu phần mềm".


Mặc dù công bằng mà nói, gần như tất cả các bộ điều khiển vi mô đều có (ít nhất một) mô-đun PWM cho mục đích chung, được triển khai trong phần cứng. Vì vậy, hiếm khi được thực hiện để bitbang một đầu ra tần số, sử dụng phần mềm chạy trên CPU thích hợp.
Lyndon White

@LyndonWhite Một PWM không phải là máy đo đa năng chung. Nó điều biến độ rộng xung là tập con của bộ tạo tần số.
qwerty_so

1
Quả thực đây là sự thật. Quan điểm của tôi là thay vì đó là loại tín hiệu phổ biến nhất mà người ta muốn tạo ra (với một số phạm vi chu kỳ nhiệm vụ) - đó là lý do tại sao các bộ vi xử lý có phần cứng đặc biệt cho nó. Tôi có lẽ sẽ đặt PWM vs bitbanging lên như một ví dụ về "phần cứng có thể thay thế phần mềm" ngược lại.
Lyndon White

@LyndonWhite Tôi đã chỉnh sửa câu trả lời của mình.
qwerty_so

5

Một so sánh giữa game arcade Tank (khoảng năm 1976) và game console gia đình Combat (1977) đưa ra một ví dụ hay về cách phần mềm có thể thay thế phần cứng thậm chí 40 năm trước.

Trò chơi arcade Tank (khoảng năm 1976) cho phép hai người chơi lái xe quanh xe tăng và bắn nhau. Nó không bao gồm bất kỳ loại bộ xử lý nào, mà thay vào đó có các bộ đếm phần cứng để theo dõi vị trí ngang và dọc của chùm electron, xe tăng và ảnh, cũng như điểm số của người chơi, góc quay, thời gian trôi qua. Nó có logic cứng để xuất dữ liệu bitmap liên quan đến điểm số, hình dạng xe tăng của người chơi và nền.

Hệ thống máy tính video Atari 2600 (bảng điều khiển trò chơi gia đình vào khoảng năm 1977) bao gồm phần cứng để theo dõi vị trí ngang (nhưng không thẳng đứng!) Của hai đối tượng bitmap và bốn bộ tạo xung có độ rộng thay đổi, giữ và đồng hồ ở mức thấp 20 bit mô hình đồ họa sân chơi giải quyết cũng như hai mẫu 8 bit độ phân giải cao, màu sắc chốt cho người chơi, nền và sân chơi và phát hiện va chạm giữa các đối tượng khác nhau. Nó cũng bao gồm một bộ đếm thời gian lập trình cho mục đích chung, nhưng phần cứng không có gì khác ngoài phần trên. Tuy nhiên, mặc dù phần cứng đơn giản hơn nhiều so với trò chơi Tank, Combat 2K ROM cho phép 2600 chơi cùng một trò chơi cơ bản nhưng với nhiều tính năng khác (nhiều loại phương tiện và hình nền, bắn nảy, v.v.) nó có thể thay thế hầu hết các máy arcade ' Phần cứng với phần mềm. Thật thú vị, mặc dù Atari 2600 có lẽ là nền tảng phần cứng đơn giản thứ hai của bất kỳ hệ thống trò chơi video gia đình dựa trên bộ vi xử lý nào được bán thương mại, nó được thiết kế rất tốt để tạo điều kiện thay thế phần cứng bằng phần mềm mà khi được lập trình chính xác, nó có thể chạy vòng tròn quanh nhiều đối thủ của nó.


Tôi đã dành rất nhiều giờ và quý chơi Tank. Một người bạn của tôi khôi phục các máy chơi game cũ đó và tôi đã rất ngạc nhiên khi biết rằng đó là tất cả phần cứng. Ai đó đã dành rất nhiều thời gian để làm bản đồ Karnaugh để làm cho nó có thể quản lý được. Sao chép nó trong phần mềm dễ dàng hơn nhiều và đòi hỏi ít bảo trì hơn. Tương tự với các tiểu hành tinh. Nhưng không kết thúc với cùng một cảm giác trừ khi bạn sao chép chính xác, bao gồm cả các điều khiển bàn điều khiển. Thêm vào đó, đồ họa vector không giống nhau trên màn hình raster, IMO.
SDsolar

@SDsolar: Tôi nhớ đã đọc một tờ, do Atari xuất bản, với một số mod mà chủ sở hữu có thể làm để điều chỉnh các khía cạnh khác nhau của trò chơi, tôi nghĩ rằng hai mod liên quan đến việc kích hoạt chốt cho góc bắn của người chơi (thêm một "tên lửa dẫn đường "Tính năng) và có thể thêm một cái gì đó như tính năng xe tăng vô hình. Việc thay đổi phần sụn sẽ đòi hỏi thiết bị phức tạp hơn và một số loại mod có thể dễ dàng trong phần cứng sẽ không thể có trong phần sụn (ví dụ: nếu vị trí người chơi sử dụng bộ đếm nhị phân, thì trình phát xuất hiện hai lần trên mỗi dòng quét là không đáng kể).
supercat

1

Cụm từ "phần mềm có thể thay thế phần cứng" là một cảnh báo không thử và giải quyết các vấn đề với phần cứng trừ khi có những lợi thế rất rõ ràng. Phần mềm rẻ hơn gấp 10 - 50 lần để phát triển và sản xuất trên mỗi đơn vị gần như rẻ hơn so với phần cứng. Làm X trong phần cứng sẽ không phải là giải pháp chiến thắng trừ khi X thực sự không thể thực hiện hiệu quả trong phần mềm.


Tôi đã không downvote, nhưng tôi khá chắc chắn rằng điều này là không chính xác.
J. Allan

@ JefréN. Đó chỉ là về việc mua phần cứng thay vì phát triển nó.
DepressionDaniel

Bạn đúng; Tôi hiểu sai ý định của câu hỏi. Bạn có trích dẫn hoặc liên kết để khẳng định lại rằng "phần mềm rẻ hơn gấp 10-50 lần để phát triển ... so với phần cứng."? Tôi muốn biết liệu đó có phải là một con số trên sân bóng hay đó là một tuyên bố [thường được chấp nhận / xác minh]. (Tôi xin lỗi bạn đang buồn, btw .; D)
J. Allan

Tôi đã không downvote nhưng tôi không thể upvote vì không phải lúc nào phần mềm cũng rẻ hơn. Thường thì nó có thể đắt hơn nhiều. Ngoài ra, hãy xem xét khái niệm về ASIC và FPGA, trong đó phần mềm được sử dụng để tạo ra một phần cứng tương đương để sau đó có thể chạy nhanh hơn. Giống như sự khác biệt cuối cùng giữa các chương trình thực thi và các chương trình được giải thích, nhưng nhiều hơn thế.
SDsolar

1
@SDsolar Tôi chưa từng nghe về trường hợp tính năng tương tự được triển khai trong phần cứng rẻ hơn phần mềm. Nếu nó khả thi để làm trong phần mềm, thì hầu như sẽ rẻ hơn khi làm nó trong phần mềm. Tất nhiên, ví dụ, trình kết xuất phần mềm sẽ gặp vấn đề về hiệu năng sớm hơn khi so sánh với card đồ họa. Nhưng điều đó đi nhiều hơn vào tính khả thi của việc triển khai phần mềm để đạt được một đường cơ sở nhất định về hiệu suất.
DepressionDaniel

1

Sắc thái đã được khắc phục tốt, nhưng tôi nghĩ có thể đó là trở ngại cho OP, đó là điều không thể thay thế phần cứng bằng phần mềm. "Phần cứng" luôn luôn liên quan đến "phần cứng" ít hơn đáng kể so với giải pháp "phần mềm".

Sự khác biệt là logic của một quá trình / thuật toán / tính toán có thể được di chuyển giữa phần cứng và phần mềm. Nhiều ví dụ đã được đưa ra, vì vậy tôi sẽ không giải thích.


-1

Trong các máy tính ban đầu có bộ nhớ ảo, bạn phải thực hiện chuyển đổi tác vụ khi lỡ TLB để tải mục nhập trang mới. Một phần mềm của hệ điều hành sẽ tìm đúng quy trình và đi qua các bảng trang, tìm mục chính xác và viết lại cho TLB. Trước khi chuyển về quy trình ban đầu để tiếp tục.

Bây giờ hầu hết CPU sử dụng phần cứng để thực hiện quy trình, đọc bảng trang, đi bộ bảng trang và cập nhật TLB.

Cả hai phương pháp đều cần sử dụng phần mềm để xử lý lỗi trang, nhưng vì TLB bỏ lỡ nhiều hơn số lần lỗi trang, phần cứng vẫn vượt trội so với phần mềm.

Nói chung, nếu bạn có một quy trình đơn giản mà bạn cần xử lý nhiều lần, bạn sẽ tìm thấy một sự thay thế phần cứng. Nếu bạn có một giải pháp phần cứng phức tạp với luồng điều khiển phức tạp, bạn có thể đơn giản hóa phần cứng bằng cách sử dụng phần mềm.


-2

Có nhiều trường hợp phần mềm có thể thay thế phần cứng và ngược lại.

Một ví dụ kinh điển về điều này là một bảng tra cứu toán học. Thay vì tính kết quả cho các biểu thức phổ biến mỗi lần, chúng được lưu trữ nội bộ trong bộ đồng xử lý toán học của bạn và được gọi đơn giản khi cần.

Hầu hết có lẽ đã quen thuộc với các bộ lọc âm thanh và phần mềm có thể bắt chước các thiết bị và thiết bị thực như bàn đạp hoặc bộ khuếch đại.

Bất kỳ phần cứng nào có thể được tạo ra hầu như sẽ được sử dụng, nếu nó nhanh hơn và / hoặc rẻ hơn so với tương đương vật lý.


-2

Trong kế toán, một bản sao cứng của hóa đơn (ví dụ) hiện có thể được gửi bằng điện tử và phần mềm bắt đầu xử lý việc nhận loại giấy tờ này và xử lý ngày càng nhiều. Đây là một ví dụ tuyệt vời về phần cứng được thay thế bằng phần mềm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.