วลี“ ซอฟต์แวร์สามารถเปลี่ยนฮาร์ดแวร์ได้” หมายถึงอะไร


90

การเรียนหลักสูตรผู้เริ่มต้นบนอินเทอร์เฟซฮาร์ดแวร์ / ซอฟต์แวร์และระบบปฏิบัติการมักจะเกิดหัวข้อว่าจะเป็นการดีกว่าถ้าจะแทนที่ส่วนฮาร์ดแวร์บางส่วนด้วยซอฟต์แวร์และในทางกลับกัน ฉันไม่สามารถเชื่อมต่อได้


7
วัตถุประสงค์ทั่วไปของ CPU มีชุดคำสั่งที่อนุญาตให้ดำเนินการทางตรรกะตามอำเภอใจ ซอฟต์แวร์ถูกคอมไพล์ไปยังสตรีมของคำสั่งที่ดำเนินการโดยชุดคำสั่ง CPU นี่คือตัวอย่างของการทำสิ่งต่าง ๆ "ในซอฟต์แวร์" ในทางตรงกันข้ามอัลกอริทึมซอฟต์แวร์สามารถดำเนินการโดยตรง "ในฮาร์ดแวร์" โดยสร้างอาร์เรย์พิเศษของประตูตรรกะในซิลิคอน
ฝัน

12
"การเชื่อมต่อ" คือทั้งซอฟต์แวร์และฮาร์ดแวร์ดำเนินการตามคำสั่งทางตรรกะที่แตกต่างกัน
ฝัน

14
มันหมายถึงสิ่งที่พูด ซอฟต์แวร์และฮาร์ดแวร์ทำสิ่งต่าง ๆ บางครั้งคุณสามารถทำสิ่งต่าง ๆ ด้วยซอฟต์แวร์หรือฮาร์ดแวร์เพื่อให้คุณเลือก ถ้าอย่างนั้นคุณก็สงสัยว่ามันจะดีกว่าถ้าจะทำกับอีกอัน
Immibis

4
เห็นได้ชัดว่าคุณไม่สามารถแทนที่ฮาร์ดแวร์ทั้งหมดด้วยซอฟต์แวร์ได้ - ไม่มีความพยายามในการสร้างจอภาพซอฟต์แวร์เมาส์หรือแป้นพิมพ์ (ยกเว้นกรณีที่พวกเขากำลังคนเสมือน)
immibis

2
พิจารณาว่าเราใช้ (ซอฟต์แวร์) ระบบปฏิบัติการเพราะ: 1) การเขียนระบบปฏิบัติการโดยตรงในฮาร์ดแวร์จะต้องมีชิปที่ซับซ้อนอย่างเหลือเชื่อซึ่งจะมีราคาสูงมาก 2) ฮาร์ดแวร์ไม่สามารถอัปเดตได้ง่ายดังนั้นระบบปฏิบัติการฮาร์ดแวร์จะไม่ได้รับการอัปเดต หากพบปัญหาความปลอดภัยจะไม่สามารถแก้ไขได้ ฯลฯ ฯลฯ
Bakuriu

คำตอบ:


176

ฉันคิดว่าการเชื่อมต่อพื้นฐานที่คำตอบอื่น ๆ หายไปคือ:

ด้วยคอมพิวเตอร์ที่ใช้งานทั่วไป (เช่น CPU) เราสามารถตั้งโปรแกรมให้ทำการคำนวณที่เรากำหนดไว้ได้ อย่างไรก็ตามฮาร์ดแวร์พิเศษอาจทำงานได้ดีขึ้นหรืออาจไม่มีคุณค่าใด ๆ

(คำตอบนี้มุ่งเน้นไปที่การประมวลผลเดสก์ท็อปและใช้ตัวอย่างจากโดเมนนั้น)

การเปลี่ยนซอฟต์แวร์ด้วยฮาร์ดแวร์

หากคุณอายุมากพอที่จะจดจำเกมพีซีในช่วงกลางถึงปลายปี 1990 คุณอาจจำเกม FPS เช่นQuakeได้ มันเริ่มต้นจากการ "แสดงผลซอฟต์แวร์" หมายถึง CPU ดำเนินการคำนวณที่จำเป็นเพื่อแสดงภาพกราฟิก ในขณะเดียวกัน CPU ก็ต้องทำการประมวลผลอินพุต, การประมวลผลเสียง, การประมวลผล AI ฯลฯ มันต้องเสียภาษีมากในทรัพยากรของ CPU นอกจากนี้การประมวลผลกราฟิกไม่เหมาะกับซีพียูหลัก (อย่างนั้นหรือตอนนี้) มันมีแนวโน้มที่จะเป็นงานที่ขนานกันอย่างมากโดยต้องใช้คอร์จำนวนมากมากกว่าแม้แต่ซีพียูระดับสูงที่ทันสมัย ​​(8)

เราย้ายการประมวลผลกราฟิกจากซอฟต์แวร์ไปยังฮาร์ดแวร์: ป้อน3dfx VoodooและNvidia TNT (ตอนนี้GeForce ) นี่เป็นการ์ดกราฟิกพิเศษที่ประมวลผลการประมวลผลจากซีพียูไปยัง GPU ไม่เพียง แต่กระจายงานให้ทรัพยากรการประมวลผลมากขึ้นเพื่อทำงานในปริมาณเดียวกันเท่านั้นการ์ดกราฟิกยังเป็นฮาร์ดแวร์เฉพาะที่สามารถแสดงกราฟิก 3 มิติได้เร็วขึ้นและมีคุณสมบัติมากกว่า CPU

ข้างหน้าอย่างรวดเร็วในยุคปัจจุบันและไม่มี CPU กราฟิกที่จำเป็นบนเดสก์ทอป แม้แต่ระบบปฏิบัติการก็ไม่สามารถทำงานได้หากไม่มี GPU มันสำคัญมากที่ซีพียูจะรวม GPU เข้าด้วยกันในตอนนี้ 1

การเปลี่ยนฮาร์ดแวร์ด้วยซอฟต์แวร์

ย้อนกลับไปเมื่อ DVD เป็นรุ่นใหม่คุณสามารถติดตั้งไดรฟ์ DVD ในคอมพิวเตอร์เดสก์ท็อปของคุณได้ อย่างไรก็ตามซีพียูของวันนั้นไม่มีพลังเพียงพอที่จะถอดรหัสวิดีโอดีวีดีและสตรีมเสียงโดยไม่พูดติดอ่าง ในตอนแรกจำเป็นต้องมีบอร์ด PCI พิเศษเพื่อทำการถอดรหัส นี่คือฮาร์ดแวร์พิเศษที่สร้างขึ้นโดยเฉพาะเพื่อถอดรหัสรูปแบบ DVD และไม่มีอะไรอื่น เช่นเดียวกับกราฟิก 3D ไม่เพียงให้ทรัพยากรการประมวลผลมากขึ้นเท่านั้น แต่ยังถูกสร้างขึ้นเองสำหรับงานทำให้การเล่น DVD เป็นไปอย่างราบรื่น

เมื่อซีพียูมีพลังมากขึ้นมันก็เป็นไปได้ที่จะถอดรหัสดีวีดี "ในซอฟต์แวร์" ความหมาย "ในคอมพิวเตอร์อเนกประสงค์ แม้ว่าจะใช้โปรเซสเซอร์ที่มีประสิทธิภาพน้อยกว่า แต่ก็มีความเร็วที่เพียงพอและการปรับแต่งขั้นสูงสุดเพื่อให้การเล่น DVD เป็นไปตามความคาดหวังของผู้ใช้

ตอนนี้เรามีซีพียูหลายร้อยหรือหลายพันเท่าที่ทรงพลัง2อย่างที่เรามีเมื่อมีการนำดีวีดีมาใช้ เมื่อบลูเรย์เข้ามาเราไม่ต้องการฮาร์ดแวร์พิเศษเพราะฮาร์ดแวร์เอนกประสงค์นั้นมีประสิทธิภาพมากกว่าที่จะรองรับงานได้

ทำทั้งสองอย่าง

ซีพียูรุ่นใหม่ของ Intel มีคำแนะนำเฉพาะสำหรับการเข้ารหัสและถอดรหัสH.264 นี่เป็นส่วนหนึ่งของเทรนด์ที่ซีพียูที่ใช้งานทั่วไปกำลังได้รับฟังก์ชั่นพิเศษทั้งหมดในชิปตัวเดียวกัน เราไม่จำเป็นต้องใช้บอร์ด PCI Express แยกต่างหากในการถอดรหัส H.264 อย่างมีประสิทธิภาพเช่นเดียวกับดีวีดีก่อนเนื่องจาก CPU มีวงจรที่คล้ายกัน


1 GPU หมายถึงหน่วยประมวลผลที่ออกแบบมาเฉพาะเพื่อทำการคำนวณแบบกราฟิก กราฟิกการ์ด 2D ที่เก่ากว่าไม่ใช่ GPU: เป็นเพียง framebuffers ที่มี DACs เพื่อพูดคุยกับจอภาพ ความแตกต่างคือ GPU มีตัวประมวลผลพิเศษที่ยอดเยี่ยมในการคำนวณบางประเภทและเมื่อเวลาผ่านไปตอนนี้สามารถตั้งโปรแกรมได้ด้วยตนเอง (เฉดสี) ฮาร์ดแวร์กราฟิกมีวงจรเฉพาะที่จำเป็นในการแปลงข้อมูลใน framebuffer เป็นรูปแบบที่สามารถส่งออกผ่านสายเคเบิล (VGA, DVI, HDMI, DisplayPort) และทำความเข้าใจกับจอภาพ นั่นไม่เกี่ยวข้องกับการอภิปรายเรื่องการลดการคำนวณลงในฮาร์ดแวร์พิเศษ

2 DVD-Video เปิดตัวในปี 1997 ในขณะที่ Pentium 2 เพิ่งเปิดตัวด้วยเช่นกัน นี่เป็นช่วงเวลาที่ซีพียูกำลังเพิ่มขึ้นอย่างรวดเร็ว: ผู้ใช้สามารถพิจารณาคอมพิวเตอร์ P2 ใหม่ที่มีตัวถอดรหัส DVD หรือติดตั้งหนึ่งตัวใน P1 ที่เก่ากว่าเล็กน้อย เปรียบเทียบกับเจนเนอเรชั่น 6 Core i7 รุ่นใหม่โดยใช้รายการ MIPS ของ Wikipediaและซีพียูสมัยใหม่นั้นเร็วกว่าระหว่าง 590 ถึง 1,690 เท่า นี่เป็นส่วนหนึ่งของความเร็วสัญญาณนาฬิกา แต่ยังย้ายไปยังหลายคอร์ในฐานะที่เป็นมาตรฐานเช่นเดียวกับ CPU สมัยใหม่ที่ทำงานได้มากขึ้นต่อคอร์ต่อหนึ่งขีด ที่เกี่ยวข้องก็คือในฐานะที่เป็นเทคโนโลยีที่ก้าวหน้า Intel (ซึ่งครองตลาดบนเดสก์ท็อปและเซิร์ฟเวอร์ x86) ได้เพิ่มคำแนะนำพิเศษเพื่อช่วยให้การดำเนินงานเร็วขึ้นที่ผู้ใช้เดสก์ท็อปต้องการทำ (เช่นการถอดรหัสวิดีโอ)


การ์ดกราฟิก 2d ที่เก่ากว่านั้นไม่ใช่ GPU ที่เข้าใจกันในปัจจุบัน แต่ฮาร์ดแวร์เฉพาะสำหรับฟังก์ชั่นกราฟิกนั้นมีอยู่มาก blitter สามารถคัดลอกหน่วยความจำจำนวนมากจากที่หนึ่งไปอีกที่หนึ่งได้อย่างรวดเร็วอาจใช้การดำเนินการทางตรรกะอย่างง่ายเพื่อรวมเข้ากับข้อมูลที่ตำแหน่งเป้าหมาย สิ่งนี้มีอยู่ในการ์ด 2d ทั่วไปของยุค VGA / SVGA คอมพิวเตอร์เครื่องอื่นมีฮาร์ดแวร์ 2D พิเศษอื่น ๆ เช่นสไปรต์ฮาร์ดแวร์ในคอมพิวเตอร์ที่บ้านและคอนโซลเกมในยุค 80 และ 90
เซบาสเตียนเรดล

127

ฉันประหลาดใจที่ไม่มีใครพูดถึง แต่เป็นหนึ่งในตัวอย่างที่เด่นชัดที่สุด: วิทยุที่กำหนดโดยซอฟต์แวร์

หากคุณใช้สมาร์ทโฟนยุคปัจจุบันย้อนเวลากลับไป 50 ปีและแสดงให้วิศวกรที่มีความสามารถในช่วงกลางทศวรรษ 1960 เขาจะสามารถเข้าใจได้มากที่สุด ซูเปอร์คอมพิวเตอร์สามารถลดบางสิ่งลงในกระเป๋าของคุณได้หรือไม่? ตรวจสอบ คุณสามารถเทียบเท่าโทรทัศน์สีคุณภาพสูงพิเศษในแพ็คเกจหรือไม่ ตรวจสอบ มันเร็วกว่ามากมีพื้นที่จัดเก็บมากขึ้นกว่าคอมพิวเตอร์ในยุคนี้หรือไม่? ตรวจสอบ ซอฟต์แวร์ดังกล่าวได้รับการเขียนซึ่งสามารถใช้ฟังก์ชันที่ซับซ้อนได้หรือไม่ ตรวจสอบ

แต่บอกว่าวิศวกรผู้มีอำนาจที่โอ้โดยวิธีการแพคเกจนี้ประกอบด้วยชุดของเครื่องส่งสัญญาณที่มีประสิทธิภาพมากและตัวรับสัญญาณที่มีความละเอียดอ่อน: ตัวรับส่งสัญญาณสเปกตรัมการแพร่กระจายแบบดิจิตอลที่สามารถส่งและรับในหลายช่องทางพร้อมกันสื่อสารกับหอคอยโครงสร้างพื้นฐาน ; ตัวรับส่งสัญญาณดิจิตอลอื่นที่สื่อสารข้อมูลความเร็วสูงกับสถานีฐานที่ใดที่หนึ่งในอาคาร อีกตัวรับส่งสัญญาณดิจิตอลที่สื่อสารกับอุปกรณ์ที่สวมใส่พลังงานต่ำ; และอีกเครื่องรับที่รับสัญญาณอ่อนจากดาวเทียมในวงโคจรระดับกลาง ... เขาจะเรียกคุณว่าคนโกหก

เขาจะเรียกคุณว่าคนโกหกเพราะเขารู้ว่าผู้รับความไวสูงดังกล่าวไม่สามารถสร้างขึ้นได้หากไม่มีวงจรปรับจำนวนมากซึ่งกรองสถานีที่อยู่ใกล้เคียงและเลือกสัญญาณที่น่าสนใจ และวงจรดังกล่าวต้องการชิ้นส่วนที่มีขนาดที่กำหนดโดยฟิสิกส์มากกว่าเทคโนโลยีเช่นตัวเก็บประจุและตัวเหนี่ยวนำ

จากนั้นคุณจะต้องอธิบายว่าในวิทยุสมัยใหม่ส่วนใหญ่ทำในซอฟต์แวร์ หลังจากที่สัญญาณที่เข้ามาจากเสาอากาศถูกแปลงเป็นความถี่กลางและขยายสัญญาณเล็กน้อยมันจะถูกสุ่มตัวอย่างโดยตัวแปลงสัญญาณอนาล็อกเป็นดิจิตอล และการประมวลผลที่ตามมาจะเกิดขึ้นในตัวประมวลผลสัญญาณดิจิตอล การปรับแต่งทั้งหมดนั้นการกรองนั้นซึ่งเคยต้องการฮาร์ดแวร์จำนวนมากในวิทยุระดับไฮเอนด์ของโรงเรียนสามารถอธิบายได้ในรูปของสมการทางคณิตศาสตร์ และหากสามารถทำได้สมการเหล่านั้นสามารถดำเนินการได้ในเวลาจริงโดย DSP

ฉันคิดว่านี่เป็นหนึ่งในตัวอย่างที่เด่นชัดที่สุดของซอฟต์แวร์ที่ใช้แทนฮาร์ดแวร์ ดังนั้นเราจึงพกสมาร์ทโฟนไว้ในกระเป๋าของเราซึ่งแม้แต่วิศวกรที่มีความสามารถในยุค 1960 ก็จะคล้ายกับเวทมนต์

เมื่อเปรียบเทียบกับความคิดที่ว่าตรรกะที่เรียบง่ายของเครื่องเปิดประตูโรงรถเครื่องชั่งน้ำหนักอิเล็กทรอนิกส์หรือรีโมททีวีในปัจจุบันได้ถูกนำมาใช้โดยใช้ไมโครคอนโทรลเลอร์และซอฟต์แวร์ทั่วไปแทนที่จะเป็นฮาร์ดแวร์ที่กำหนดเองเกือบจะเป็นเรื่องเล็กน้อย (และแน่นอนมาก เข้าใจได้ง่ายกว่าวิศวกรของเราในทศวรรษ 1960 มากกว่าวิทยุที่กำหนดโดยซอฟต์แวร์)


16
คำตอบที่ถูกประเมินน้อยเกินไป แม้ว่าฉันจะมีพื้นหลังเล็ก ๆ ในอุปกรณ์อิเล็กทรอนิกส์และมีการสร้างอุปกรณ์วิทยุด้วยตัวเอง แต่ฉันไม่เคยรู้เลยว่าซอฟต์แวร์เหล่านี้ทำการจูนสัญญาณ ความคิดของฉันคือกล้วยที่พยายามจินตนาการถึงสิ่งที่เกิดขึ้น
Machado

5
@Machado หากคุณเคยออกแบบอิเล็กทรอนิกส์อย่างจริงจังคุณจะรู้ได้อย่างรวดเร็วว่ามันคือสมการทางคณิตศาสตร์ทั้งหมด อิเล็กทรอนิคส์ทางกายภาพสามารถเพิ่ม, ลบ, หาร, แยก, แยก, รวมเข้าด้วยกันและอื่น ๆ มันเป็นเพียงแค่แทนที่จะเป็นตัวเก็บประจุแบบฟิสิคัลเพื่อกรองสัญญาณรบกวนความถี่ต่ำทั้งหมดมันทำในรหัส สัญญาณทางกายภาพจะถูก "โหลด" ลงในซอฟต์แวร์ผ่านฮาร์ดแวร์ก้อนใหญ่ที่เรียกว่าตัวแปลงสัญญาณอนาล็อกเป็นดิจิตอล
CHendrix

6
@Machado dspguide.com/pdfbook.htmหนังสือเรียนนี้มีตัวอย่าง pseudocode จำนวนมาก มันเป็นอัญมณี
brian_o

4
@Machado อย่าลืมหยิบวิทยุที่กำหนดโดยซอฟต์แวร์ (ประมาณ $ 20) แล้วเริ่มเล่นกับมัน !
Michael Hampton

5
อย่าบอกคนที่แต่งตัวประหลาดในช่วงปี 1960 ว่าสิ่งที่คุณใช้พลังงานและคุณสมบัติทั้งหมดของคอมพิวเตอร์เป็นหลัก คือการโพสต์รูปภาพอาหารของคุณสตรีมวิดีโอแมวและล่า Pokemons ...
Baard Kopperud

42

พิจารณาวงจรนี้:

ป้อนคำอธิบายรูปภาพที่นี่

มันเป็น Flip Flop หรือที่รู้จักในชื่อ Bistable Multivibrator มันสามารถถูกแทนที่ด้วยรหัสนี้:

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
ขอบคุณมากสำหรับคำตอบของคุณและสำหรับการแก้ไขการโพสต์! คุณมีหนังสือเล่มไหนที่จะแนะนำให้เรียนรู้เพิ่มเติมเล็กน้อย Gabriele
Gabriele Scarlatti

11
ตรวจสอบรหัสสินค้า: ภาษาที่ซ่อนของคอมพิวเตอร์ฮาร์ดแวร์และซอฟต์แวร์ ครอบคลุมตั้งแต่ฮาร์ดแวร์ไปจนถึงซอฟแว
ร์

4
@ รูปปั้นฉันสามารถรับรองข้อเสนอแนะของคุณ ฉันกำลังอ่านหนังสืออยู่และมันก็เป็นหนังสือที่ดีที่สุดในสถาปัตยกรรมคอมพิวเตอร์ที่ฉันเคยอ่าน มันทำงานได้อย่างยอดเยี่ยมในการอธิบายแต่ละแนวคิดอย่างชัดเจนและรัดกุมโดยไม่ต้องใช้ศัพท์แสงทางเทคนิคมากเกินไปในลำคอ ฉันขอแนะนำอย่างยิ่งให้กับทุกคนที่ต้องการความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับความสัมพันธ์ระหว่างฮาร์ดแวร์และซอฟต์แวร์
Christian Dean

1
@migilla, หาดี! อย่างมีความสุขสำหรับฉันมีให้เป็นส่วนหนึ่งของ Safari Books Onlineดังนั้นฉันสามารถเริ่มอ่านได้ทันที :) (อ่านความคิดเห็นของฉันอีกครั้งก่อนที่จะโพสต์:. เสียงเหมือนการโฆษณา แต่ฉันแค่ลูกค้ามีความสุขฉันไม่ได้พบใด ๆแนะนำหนังสือทางเทคนิคในปีที่ผ่านมาว่าฉันจะไม่ได้ทันทีเรียกดูหรือแม้กระทั่งอ่านในเต็มรูปแบบ ออนไลน์))
Wildcard

29

มันหมายถึงสิ่งที่ดูเหมือน

ตัวอย่างที่มีชื่อเสียงโดยเฉพาะคือDisk II Drive ที่ออกแบบโดย Steve Wozniak สำหรับ Apple II:

นวัตกรรมหลักที่ทำให้ตัวควบคุมมีขนาดกะทัดรัดโดยใช้ซอฟต์แวร์ในขณะที่คู่แข่งพึ่งพาฮาร์ดแวร์ ในขณะที่ Bill Fernandez ช่างเทคนิคอิเล็กทรอนิกส์ของ Apple จำได้ว่า "ข้อได้เปรียบที่สำคัญของการออกแบบ [Wozniak] [คือ] ใช้เพียงหกชิปแทนที่จะใช้ 60 ถึง 70 ปกติ

อีกตัวอย่างหนึ่งที่คุณอาจคุ้นเคยกับ: Emulators พวกเขาแทนที่ทั้งชุดของฮาร์ดแวร์ (และซอฟต์แวร์) ทั้งหมดในซอฟต์แวร์ ซีพียูชิปควบคุมต่าง ๆ แม้แต่อุปกรณ์เก็บข้อมูล

ตอนนี้คุณไม่สามารถกำจัดฮาร์ดแวร์ทั้งหมดได้ในที่สุดคุณต้องมีบางอย่างในการเปิดใช้งานซอฟต์แวร์ แต่โดยทั่วไปงานลอจิกใด ๆ ที่คุณสามารถนำไปใช้ในฮาร์ดแวร์สามารถนำไปใช้ในซอฟต์แวร์ได้ (ประสิทธิภาพอาจไม่เหมือนกันมันอาจช้าลงเร็วขึ้นหรือในสถานการณ์ที่แตกต่างกันขึ้นอยู่กับฮาร์ดแวร์พื้นฐานและการใช้งาน)


ดังนั้นสิ่งเดียวที่คุณต้องการเสมอคือโปรเซสเซอร์อย่างน้อยหนึ่งตัว
Gabriele Scarlatti

3
@GabrieleScarlatti คุณจะต้องเพิ่มอีกเล็กน้อยโดยเฉพาะอุปกรณ์ I / O ต้องเป็นฮาร์ดแวร์ (แต่ตัวควบคุมอาจเป็นซอฟต์แวร์!) และหน่วยความจำต้องเป็นฮาร์ดแวร์ การเชื่อมต่อระหว่างพวกเขาจะต้องเป็นฮาร์ดแวร์ แต่ตรรกะที่จำเป็นมี จำกัด สายไฟที่เรียบง่ายหากคุณมีพินมากพอลงทะเบียนเปลี่ยนอุปกรณ์หรืออุปกรณ์ที่คล้ายกันน้อยลงเล็กน้อยหากคุณไม่มีพินเพียงพอ
8bittree

อาฮาฮาใช่แล้วฉันคิดมากเกินไปคุณช่วยแนะนำหนังสือดีๆให้เรียนรู้เพิ่มเติมได้ไหม? ขอบคุณมากสำหรับคำตอบ!
Gabriele Scarlatti

1
คำตอบที่ดีที่สุดในหัวข้อนี้คือ "อีมูเลเตอร์"
Machado

1
ไม่สามารถพูดเกี่ยวกับเรื่องนี้โดยไม่พูดถึง Woz!
James R.

11

อีกสาขาหนึ่งที่สิ่งนี้เป็นจริงคือนักสังเคราะห์

ซินธิไซเซอร์ในยุคแรกนั้นเป็นฮาร์ดแวร์อะนาล็อก 100%ที่สร้างรูปคลื่นในรูปโดยตรงจากนั้นทำการแก้ไขผ่านวงจร (ฟิลเตอร์, แอมป์, ฯลฯ ) เป็นไปได้ที่จะสังเคราะห์เสียงแบบดิจิทัล แต่ต้องการทรัพยากรการประมวลผลที่คนทั่วไปไม่สามารถจ่ายได้ (เป็นเมนเฟรมจริงและฮาร์ดแวร์ตัวแปลงดิจิตอลเป็นอะนาล็อกที่กำหนดเอง)

ในขณะที่การประดิษฐ์ชิปดีขึ้นซินธิไซเซอร์ก็เปลี่ยนจากอะนาล็อกบริสุทธิ์เป็นชิพสังเคราะห์ที่ควบคุมโดยสัญญาณดิจิตอล แต่ยังคงสร้างสัญญาณอะนาล็อกจากนั้นเป็นการสังเคราะห์ดิจิทัลบริสุทธิ์ (ตัวอย่างการเล่นการสังเคราะห์ FM การสังเคราะห์สารเติมแต่งจริงเป็นต้น)

วันนี้โปรเซสเซอร์มีราคาถูกพอและเร็วพอที่จะอนุญาตให้โปรแกรมเมอร์สร้างซินดิเคเตอร์อนาล็อกคลาสสิกรุ่นคอมพิวเตอร์ที่จำลองพฤติกรรมของวงจรดั้งเดิมโดยจำลองพฤติกรรมของพวกเขาในแบบเรียลไทม์ในความเป็นจริงโทรศัพท์และแท็บเล็ต เรียกใช้การสร้างใหม่เหล่านี้ Korg IMS-20เป็นตัวอย่าง

ทั้งซินธิไซเซอร์คลาสสิกและซินธิไซเซอร์ใหม่มีให้ใช้เป็นปลั๊กอิน VST หรือ AU สำหรับโปรแกรมเสียงดิจิตอลเช่น Ableton Live, Logic หรือ Cubase และสิ่งเหล่านี้ให้การเข้าถึงซินธิไซเซอร์กับคนที่ไม่มีพื้นที่หรือเงิน พวกเขา

แก้ไข: ฉันควร ณ จุดนี้ยังพูดถึงVCVRackซึ่งจำลองการสังเคราะห์โมดูลาร์อนาล็อกในเรียลไทม์ ค่อนข้างก้าวไปข้างหน้าจากเวลาเรนเดอร์หลายชั่วโมงสำหรับเพลงสองสามวินาที


1
1977 Atari 2600 มีแรงม้าซีพียูเพียงพอที่จะสร้างเสียงเพลงสี่เสียงที่มีช่วงเสียงห้าคู่แม้ในขณะที่เหลือเวลา CPU มากกว่า 39% สำหรับการสร้างหน้าจอ ตารางการค้นหาที่จำเป็นจะใช้เวลามากกว่าครึ่งหนึ่งของคาร์ทริดจ์ 4K (ประมาณ 2300 ไบต์) แต่แน่นอนว่าเป็นไปได้ที่คาร์ทริดจ์จะต้องมีขนาดใหญ่กว่า 4K หนึ่งอาจจะไม่สามารถมีการเล่นเกมที่มีความซับซ้อนชะมัดขณะเล่นเพลง >:*3แต่หน้าจอชื่อที่มีสีสันสวยด้วยเลื่อนข้อความจะเป็นไปได้แน่นอน
supercat

ใช่ฉันออกไปประมาณ 10? 20? ปีของการพัฒนาดังนั้นคำตอบของฉันจะไม่กลายเป็นนวนิยาย คะแนนที่ดีมาก! ฉันเคยมีสิ่งที่เรียกว่า (Musicworks) [ thinkclassic.org/viewtopic.php?id=550]บน Mac 512K ของฉันที่สามารถรองรับ 4 เสียงแทบจะไม่
โจแมคมาฮอน

68000 ใช้เวลามากขึ้นในการดำเนินการแต่ละคำสั่งกว่า 6502 แต่ด้วยการเข้ารหัสที่เหมาะสมการสังเคราะห์ตารางคลื่นเสียงสี่เสียงควรมีประสิทธิภาพพอสมควร ฉันจะประมาณ 240 รอบ / ตัวอย่างด้วยการปรับขนาดแอมพลิจูดโดยใช้ตาราง 256 ไบต์สำหรับการตั้งค่าระดับเสียงแต่ละครั้ง การกำจัดการปรับขนาดแอมพลิจูดจะทำให้เวลานั้นลดลง 56 รอบ / ตัวอย่าง
supercat

7

ในสมัยก่อนการตัดค่อนข้างชัดเจน สิ่งที่ต้องดำเนินการอย่างรวดเร็วส่วนใหญ่จะต้องดำเนินการในฮาร์ดแวร์ ยกตัวอย่างเช่น multivibrator ซึ่งสร้างความถี่ ไม่นานมานี้คุณต้องการทรานซิสเตอร์สองตัวตัวเก็บประจุและผลึกในที่สุดเพื่อสร้างความถี่ (คงที่) ขณะนี้มีคอนโทรลเลอร์ไมโครราคาถูกที่เสียค่าใช้จ่ายเพียงไม่กี่เซ็นต์ เนื่องจากมันเร็วมากคุณจึงสามารถใช้มันได้อย่างง่ายดายเพื่อสร้างมัลติไวเบรเตอร์ และยิ่งไปกว่านั้นคุณสามารถควบคุมได้อย่างง่ายดายผ่านซอฟต์แวร์ว่าจะสร้างความถี่ที่ไหนในครั้งก่อนที่คุณต้องการประสานฮาร์ดแวร์ที่แตกต่างกัน แม้ว่าจะผ่านความถี่ (แต่ตอนนี้ค่อนข้างสูง) คุณยังคงต้องการฮาร์ดแวร์ที่บริสุทธิ์ ดังนั้นคุณจะเห็นว่ามีเส้นแบ่งระหว่างทั้งสองส่วน แต่ส่วนที่คุณสามารถแก้ไขได้ด้วยซอฟต์แวร์กำลังเพิ่มขึ้นเรื่อย ๆ

แก้ไขจริง ๆ แล้ว“ ซอฟต์แวร์สามารถเปลี่ยนฮาร์ดแวร์” ไม่ถูกต้องจริงๆ มันเป็นความจริงที่ว่าฮาร์ดแวร์มีความสามารถมากมายที่คุณสามารถใช้เพื่อรันซอฟต์แวร์ที่จำลองฮาร์ดแวร์ ดังนั้นแทนที่จะใช้ทรานซิสเตอร์ที่เรียบง่าย แต่มีการบัดกรีจำนวนเล็กน้อยคุณใช้ทรานซิสเตอร์นับล้านที่เข้าใจซอฟต์แวร์ ดังนั้นคำควรจะเป็น "ฮาร์ดแวร์สามารถเข้าใจซอฟต์แวร์" แทน


เพื่อความเป็นธรรมถึงแม้ว่าตัวควบคุมไมโครเกือบทั้งหมดจะมีโมดูล PWM วัตถุประสงค์ทั่วไป (อย่างน้อยหนึ่ง) ในฮาร์ดแวร์ ดังนั้นจึงเป็นเรื่องยากที่จะทำ bitbang ออกความถี่โดยใช้ซอฟต์แวร์ที่ทำงานบน CPU ที่เหมาะสม
Lyndon White

@LyndonWhite PWM ไม่ใช่มัลติไวเบรเตอร์ทั่วไป มันปรับความกว้างของพัลส์ซึ่งเป็นส่วนย่อยของเครื่องกำเนิดความถี่
qwerty_so

1
อันที่จริงนี่คือความจริง ประเด็นของฉันค่อนข้างที่ PWM แม้ว่าจะเป็นสัญญาณที่พบได้บ่อยที่สุดที่ต้องการสร้าง (ด้วย - ในบางช่วงรอบการทำงาน) - ซึ่งเป็นเหตุผลที่ไมโครโปรเพนเทอร์มีฮาร์ดแวร์พิเศษสำหรับมัน ฉันอาจจะวางบิต PWM กับการยกขึ้นเป็นตัวอย่างของ "ฮาร์ดแวร์สามารถแทนที่ซอฟต์แวร์" ตรงกันข้าม
Lyndon White

@Lyndon ขาวฉันทำการแก้ไขคำตอบของฉัน
qwerty_so

5

การเปรียบเทียบระหว่างเกมอาเขต Tank (ประมาณปี 1976) และเกมคอนโซลหน้าแรก Combat (1977) ให้ผลตอบแทนที่ดีตัวอย่างของวิธีการที่ซอฟต์แวร์สามารถเปลี่ยนฮาร์ดแวร์ได้แม้เมื่อ 40 ปีก่อน

รถถังเกมอาร์เคด (ประมาณปี 1976) อนุญาตให้ผู้เล่นสองคนขับรถถังและยิงกัน มันไม่ได้รวมตัวประมวลผลใด ๆ แต่มีตัวนับฮาร์ดแวร์เพื่อติดตามตำแหน่งแนวนอนและแนวตั้งของลำแสงอิเล็กตรอนรถถังและช็อตรวมถึงคะแนนของผู้เล่นมุมการหมุนเวลาที่ผ่านไป มันมีตรรกะแบบเดินสายเพื่อส่งออกข้อมูลบิตแมปที่เกี่ยวข้องกับคะแนนรูปร่างรถถังของผู้เล่นและพื้นหลัง

ระบบคอมพิวเตอร์วิดีโออาตาริ 2600 (เกมคอนโซลภายในบ้านประมาณปี 2520) รวมฮาร์ดแวร์เพื่อติดตามตำแหน่งแนวนอน (แต่ไม่ใช่แนวดิ่ง!) ของวัตถุบิตแมปสองบิตและเครื่องกำเนิดสัญญาณพัลส์แบบไวด์ ธ สี่ตัว รูปแบบกราฟิก playfield สำหรับการแก้ไขรวมถึงรูปแบบความละเอียดสูง 8 บิตสองรูปแบบสีสลักสำหรับผู้เล่นพื้นหลังและสนามเด็กเล่นและตรวจจับการชนกันของวัตถุต่าง ๆ นอกจากนี้ยังมีตัวจับเวลาที่ตั้งโปรแกรมได้ตามวัตถุประสงค์ทั่วไป แต่ฮาร์ดแวร์มีสิ่งอื่นนอกเหนือจากด้านบนเล็กน้อย อย่างไรก็ตามแม้ว่าฮาร์ดแวร์นั้นง่ายกว่าเกม Tank แต่ตลับคาร์ทริดจ์ 2K ROM ช่วยให้ 2600 เล่นเกมพื้นฐานเดียวกัน แต่มีคุณสมบัติอื่น ๆ อีกมากมาย (ความหลากหลายของยานพาหนะและพื้นหลังการตีช็อต ฯลฯ ) เนื่องจาก มันสามารถแทนที่เครื่องอาเขตส่วนใหญ่ ' ฮาร์ดแวร์พร้อมซอฟต์แวร์ ที่น่าสนใจถึงแม้ว่า Atari 2600 น่าจะเป็นแพลตฟอร์มฮาร์ดแวร์ที่ง่ายที่สุดเป็นอันดับสองของระบบวิดีโอเกมที่ใช้ไมโครโปรเซสเซอร์ที่ขายในเชิงพาณิชย์ แต่ก็ถูกออกแบบมาอย่างดีเพื่ออำนวยความสะดวกในการเปลี่ยนฮาร์ดแวร์ด้วยซอฟต์แวร์ซึ่งเมื่อโปรแกรมถูกต้อง คู่แข่ง


ฉันใช้เวลาหลายชั่วโมงในการเล่น Tank เพื่อนของฉันคืนเกมคอนโซลเก่าเหล่านั้นและฉันรู้สึกประหลาดใจมากที่รู้ว่ามันเป็นฮาร์ดแวร์ทั้งหมด มีคนใช้เวลาส่วนใหญ่ในการทำแผนที่ Karnaugh เพื่อให้สามารถจัดการได้ การทำซ้ำในซอฟต์แวร์นั้นง่ายกว่ามากและต้องการการบำรุงรักษาน้อยลง เช่นเดียวกับดาวเคราะห์น้อย แต่ไม่ได้จบลงด้วยความรู้สึกเดียวกันเว้นแต่ว่าคุณจะทำซ้ำอย่างแน่นอนรวมถึงส่วนควบคุมคอนโซล นอกจากนี้กราฟิกแบบเวกเตอร์ก็ดูไม่เหมือนกันบนหน้าจอแบบแรสเตอร์ IMO
SDsolar

@ SDSolar: ฉันจำได้ว่าอ่านแผ่นงานเผยแพร่ฉันคิดว่าโดย Atari พร้อมกับ mods บางอย่างที่เจ้าของสามารถปรับแต่งด้านการเล่นเกมต่าง ๆ ได้ฉันคิดว่า mods สองตัวที่เกี่ยวข้องกับการจับถือเป็นตัวเปิดมุมยิงของผู้เล่น "คุณสมบัติ) และอาจเพิ่มบางอย่างเช่นคุณสมบัติที่มองไม่เห็นของรถถัง การเปลี่ยนเฟิร์มแวร์จะต้องใช้อุปกรณ์ที่ซับซ้อนมากขึ้นและ mods บางชนิดจะง่ายกว่าในฮาร์ดแวร์ที่จะเป็นไปไม่ได้ในเฟิร์มแวร์ (เช่นถ้าตำแหน่งของผู้เล่นใช้ตัวนับไบนารี่โดยมีผู้เล่นปรากฏสองครั้งต่อหนึ่งบรรทัดสแกน)
supercat

1

วลี "ซอฟต์แวร์สามารถแทนที่ฮาร์ดแวร์" เป็นคำเตือนว่าอย่าพยายามแก้ไขปัญหาฮาร์ดแวร์เว้นแต่จะมีข้อได้เปรียบที่ชัดเจน ซอฟต์แวร์มีราคาถูกกว่าถึง 10x-50x ในการพัฒนาและเกือบถูกกว่าในการผลิตต่อหน่วยกว่าฮาร์ดแวร์ การทำ X ในฮาร์ดแวร์จะไม่เป็นทางออกที่ชนะเว้นแต่ว่า X จะไม่สามารถทำได้อย่างมีประสิทธิภาพในซอฟต์แวร์


ฉันไม่ได้ลงคะแนน แต่ฉันค่อนข้างมั่นใจว่านี่ไม่ถูกต้อง
J. Allan

@ JefréN นั่นเป็นเพียงเกี่ยวกับการซื้อฮาร์ดแวร์แทนที่จะพัฒนามัน
DepaniDaniel

คุณถูก; ฉันเข้าใจผิดเจตนาของคำถาม คุณมีการอ้างอิงหรือลิงค์เพื่อยืนยันการยืนยันของคุณว่า "ซอฟต์แวร์มีราคาถูกกว่าถึง 10x-50x ในการพัฒนา ... มากกว่าฮาร์ดแวร์" ฉันสนใจที่จะทราบว่าเป็นรูป ballpark หรือว่าเป็นคำสั่ง [ยอมรับ / ตรวจสอบโดยทั่วไป] (ฉันขอโทษคุณเสียใจ btw.; D)
J. Allan

ฉันไม่ได้ลงคะแนน แต่ฉันไม่สามารถลงคะแนนได้เพราะไม่จริงเสมอไปว่าซอฟต์แวร์ราคาถูกกว่า บ่อยครั้งอาจมีราคาแพงกว่ามาก นอกจากนี้ให้พิจารณาแนวคิดของ ASICs และ FPGAs ซึ่งเป็นซอฟต์แวร์ที่ใช้ในการสร้างฮาร์ดแวร์ที่เทียบเท่าซึ่งจะสามารถทำงานได้เร็วขึ้น ชอบความแตกต่างที่ดีที่สุดระหว่างโปรแกรมที่เรียกว่า vs โปรแกรมที่ถูกตีความ แต่มีมากกว่านั้น
SDsolar

1
@Sdolar ฉันไม่เคยได้ยินเกี่ยวกับกรณีที่มีการใช้คุณสมบัติเดียวกันในฮาร์ดแวร์ราคาถูกกว่าซอฟต์แวร์ ถ้ามันเป็นไปได้ที่จะทำในซอฟแวร์มันเกือบจะเป็นสากลที่ถูกกว่าที่จะทำมันในซอฟต์แวร์ แน่นอนว่าตัวแสดงซอฟต์แวร์จะทำงานเป็นปัญหาด้านประสิทธิภาพได้เร็วกว่าเมื่อเปรียบเทียบกับกราฟิกการ์ด แต่นั่นก็เป็นไปได้มากกว่าที่ความเป็นไปได้ของการนำซอฟต์แวร์ไปใช้เพื่อให้ได้ประสิทธิภาพการทำงานพื้นฐานที่แน่นอน
DepaniDaniel

1

ความแตกต่างกันนิดหน่อยได้รับการแก้ไขอย่างดี แต่ฉันคิดว่ามันเป็นไปได้ที่บล็อกสะดุดสำหรับ OP คือว่ามันเป็นไปไม่ได้มากที่จะเปลี่ยนฮาร์ดแวร์ด้วยซอฟต์แวร์ 'ฮาร์ดแวร์' มักเกี่ยวข้องกับ 'ฮาร์ดแวร์' น้อยกว่าโซลูชัน 'ซอฟต์แวร์' อย่างมาก

ความแตกต่างคือตรรกะของกระบวนการ / อัลกอริทึม / การคำนวณสามารถย้ายระหว่างฮาร์ดแวร์และซอฟต์แวร์ มีหลายตัวอย่างที่ได้รับดังนั้นฉันจะไม่ทำอย่างละเอียด


-1

ในคอมพิวเตอร์รุ่นแรกที่มีหน่วยความจำเสมือนคุณต้องทำการสลับงานกับ TLB ที่พลาดเพื่อโหลดรายการหน้าใหม่ ซอฟต์แวร์ OS ส่วนหนึ่งจะค้นหากระบวนการที่ถูกต้องและเดินผ่านตารางหน้าค้นหารายการที่ถูกต้องและเขียนกลับไปยัง TLB ก่อนที่จะเปลี่ยนกลับไปเป็นกระบวนการดั้งเดิมเพื่อดำเนินการต่อ

ตอนนี้ซีพียูส่วนใหญ่ใช้ฮาร์ดแวร์เพื่อทำกระบวนการอ่านหน้าโต๊ะเดินตารางหน้าและอัปเดต TLB

ทั้งสองวิธีจำเป็นต้องใช้ซอฟต์แวร์เพื่อจัดการข้อผิดพลาดของหน้า แต่เนื่องจาก TLB- คิดถึงข้อผิดพลาดมากกว่าจำนวนหน้าผิดพลาดอย่างมีนัยสำคัญการเดินของฮาร์ดแวร์ยังคงมีประสิทธิภาพสูงกว่าซอฟต์แวร์

ใน generel หากคุณมีขั้นตอนง่าย ๆ ที่คุณต้องจัดการซ้ำ ๆ คุณจะพบว่าการเปลี่ยนฮาร์ดแวร์ หากคุณมีโซลูชันฮาร์ดแวร์ที่ซับซ้อนพร้อมขั้นตอนการควบคุมที่ซับซ้อนคุณสามารถทำให้ฮาร์ดแวร์ง่ายขึ้นได้โดยใช้ซอฟต์แวร์


-2

มีหลายครั้งที่ซอฟต์แวร์สามารถแทนที่ฮาร์ดแวร์และในทางกลับกัน

ตัวอย่างคลาสสิกของเรื่องนี้คือตารางการค้นหาทางคณิตศาสตร์ แทนที่จะคำนวณผลลัพธ์เป็นนิพจน์ทั่วไปในแต่ละครั้งพวกเขาจะถูกเก็บไว้ภายในในตัวประมวลผลทางคณิตศาสตร์ของคุณและอ้างถึงเมื่อจำเป็น

ส่วนใหญ่อาจคุ้นเคยกับตัวกรองเสียงและซอฟต์แวร์ที่สามารถเลียนแบบเครื่องมือและอุปกรณ์จริงเช่นเหยียบหรือแอมป์

ฮาร์ดแวร์ใด ๆ ที่สามารถสร้างขึ้นได้จริงจะถูกนำมาใช้ถ้ามันเร็วกว่าและ / หรือถูกกว่าทางกายภาพที่เทียบเท่า


-2

ในทางบัญชีสามารถส่งสำเนาใบแจ้งหนี้ (ตัวอย่าง) ได้ทางอิเล็กทรอนิกส์และซอฟต์แวร์เริ่มจัดการกับการรับเอกสารประเภทนี้และกำลังดำเนินการมากขึ้นเรื่อย ๆ มันเป็นตัวอย่างที่ยอดเยี่ยมของฮาร์ดแวร์ที่ถูกแทนที่ด้วยซอฟต์แวร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.