W różnych językach asemblerowych MUL (x86)/MULT (mips) odnoszą się do mnożenia. To jest czarna skrzynka dla programisty. Interesuje mnie, w jaki sposób procesor dokonuje mnożenia niezależnie od architektury. Powiedzmy, że mam dwie wartości 16-bitowe w moich rejestrach i ja jestem cpu, więc muszę wprowadzić MUL, używając innych instrukcji, które mam (i, lub, xor, not, shl, shr, itp.). Co powinienem zrobić?W jaki sposób CPU wprowadza instrukcje takie jak MUL/MULT?
Odpowiedz
http://en.wikipedia.org/wiki/Multiplication_ALU na Wikipedii wymienia różne metody wykonywania mnożenia w obwodzie cyfrowym.
Kiedy pracowałem nad projektem dodania instrukcji SIMD do procesora podobnego do DEC Alpha w Verilog z powrotem na studia, wdrożyliśmy Wallace tree multiplier, główny powód, dla którego pracował on w ustalonej liczbie cykli i był łatwy do potokowania.
EDYCJA: Wspomniałeś używając innych bitowych instrukcji gry, na nowoczesnych procesorach multiplikacja nie byłaby mikrokodowana w ten sposób; to byłby powolny proces, a procesor zostałby ubity w benchmarki.
This page pokazuje bramki logiczne dla multipleksu kombinowanego 4 * 4. Możesz stamtąd pracować.
gdzie opisują budowę 16-bitowego mnożnika z 4-bitowych multiplikatorów, z których każdy zbudowany jest z ORAZ i pełnych sumatorów. Pełna konstrukcja, układ układów i przebiegi symulacyjne.
Obie linki są już martwe: / –
- 1. W jaki sposób wprowadza się funkcje szeregowe do wolfram alpha?
- 2. W jaki sposób wydana wersja Roslyn wprowadza niezmienne drzewa?
- 3. Jak wyświetlić instrukcje SQL w konsoli Rails, takie jak WEBrick?
- 4. W jaki sposób cpu komunikuje się z urządzeniami peryferyjnymi?
- 5. W jaki sposób można wykorzystać zdarzenia takie jak CancelEventArgs?
- 6. W jaki sposób witryny takie jak Hubspot śledzą linki przychodzące?
- 7. Czy dwie instrukcje są zawsze takie same w perlu?
- 8. Jak sen zjada CPU php
- 9. Warunkowe instrukcje przełączników w PHP
- 10. Podproces Python wprowadza spacje
- 11. W jaki sposób języki takie jak C# i Java unikają C/C++ - jak niezależna kompilacja?
- 12. Jak skorzystać z multi-cpu w C++?
- 13. Java Regex wprowadza nową linię w dopasowaniu
- 14. W jaki sposób kompilacja JIT w Javie ładuje dynamicznie skompilowane instrukcje do pamięci?
- 15. W jaki sposób gry takie jak GTA IV nie rozbijają sterty?
- 16. W jaki sposób wdrożysz częściowe żądanie i odpowiedź, takie jak apk youtube, używając ServiceStack?
- 17. W jaki sposób biblioteki asemblacji, takie jak Chai, działają bez wymuszania wywołania funkcji?
- 18. W jaki sposób AngularJS wewnętrznie łapie zdarzenia takie jak "onclick", "onchange"?
- 19. W jaki sposób jest zaimplementowana klasa Object (metody takie jak hashCode i pola wewnętrzne)?
- 20. Jak wyśmiać instrukcje "asynchroniczne z"?
- 21. węzeł js cpu 100%
- 22. W jaki sposób drukuje się instrukcje select dla następujących zapytań Slick?
- 23. jak ustawić powinowactwo CPU programu?
- 24. Jeśli instrukcje w testach
- 25. W jaki sposób instrukcja if i operacje bitowe są takie same w tym przykładzie?
- 26. Gdzie instrukcje SSE przewyższają standardowe instrukcje?
- 27. OCaml Instrukcje drukowania
- 28. Instrukcje pętli SQLite?
- 29. Natychmiastowe powiadomienia, takie jak Facebook
- 30. Dlaczego moje instrukcje if zachowują się w ten sposób?
Chociaż cpus nie nazywać własnych instrukcji ze względu na wydajność. Po prostu nie miałem innego sposobu, by wyrazić siebie, ponieważ najniższym poziomem, jaki kiedykolwiek byłem, jest asm. Dzięki za pomoc! – George
Czasami tak się dzieje. x86 jest skomplikowanym ISA i zawiera bardzo dziwne instrukcje. Instrukcje te są tłumaczone na wewnętrzny program mikro-kodu. Spójrz na http://en.wikipedia.org/wiki/File:Intel_Nehalem_arch.svg, zobaczysz złożoną jednostkę dekodującą i sekwencer mikrokodu, który to robi – Michael
Jest nawet gorszy niż na współczesnych procesorach - wydany - wykonanie zlecenia, przewidywanie rozgałęzień, hyperthreading, itp., wraz z mikrokodemem, to prawie sprawiedliwe stwierdzenie, że ISA x86 działa na maszynie wirtualnej, która jest zaimplementowana w mikrokodach i obwodach. Ale prawie nigdy nie trzeba się o to martwić ... –