Procesory są w pewnym stopniu zaprojektowane z myślą o oprogramowaniu, które ludzie będą dla niego pisać, w sposób dorozumiany lub jawny. Wydaje mi się, że jeśli spojrzysz na projekt architektury zestawów instrukcji, są one bardzo „imperatywne”, w tym sensie, że każda instrukcja koduje polecenie stylu imperatywnego. Wydaje mi się również, …
Wiem, że to bardzo częste pytanie. Ale mam inny punkt widzenia. Spróbuję to tutaj wyrazić. Z tego, co wiem, każda instrukcja wykonywana przez procesor jest w języku maszynowym i wszystko, co może zrobić, to wykonywanie operacji arytmetycznych dzięki ALU i jego tranzystorom (jeśli idziemy na poziomie sprzętowym). Jest to jednak …
Załóżmy, że otrzymaliśmy dwie liczby i i że chcemy znaleźć dla l \ le i, \, j \ le r .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r Naiwny algorytm sprawdza po prostu wszystkie możliwe pary; na przykład w rubinie mielibyśmy: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if …
Jakie urządzenia i ich połączenia są używane razem z procesorami kwantowymi? Czy są kompatybilne z urządzeniami sprzętowymi, takimi jak pamięć podręczna, pamięć RAM, dyski obecnych komputerów?
Algorytmy i struktury danych ignorowane przez pamięć podręczną są raczej nową rzeczą, wprowadzoną przez Frigo i in. w algorytmach niepamięci Cache, 1999 . Teza Prokopa z tego samego roku wprowadza także wczesne pomysły. Artykuł Frigo i in. przedstawić niektóre wyniki eksperymentalne pokazujące potencjał teorii oraz algorytmów i struktur danych nieobsługiwanych …
Gdy wystąpi przerwanie, procesor wstrzymuje bieżący proces i wywołuje kod jądra, aby obsłużyć przerwanie. Skąd procesor wie, gdzie wejść do jądra? Rozumiem, że istnieją procedury obsługi przerwań, które można zainstalować dla każdej linii przerwań. Ale ponieważ procesor wykonuje tylko „logikę przewodową”, musi istnieć pewne predefiniowane miejsce, które wskazuje albo na …
Czy są jakieś zmiany, które można wprowadzić w procesorach, aby działały lepiej w przypadku równoczesnych środowisk uruchomieniowych, takich jak Rust? Na przykład, czy są jakieś zmiany w implementacjach przewidywania gałęzi lub rozmiarach pamięci podręcznej, które pomogłyby w jednoczesnych uruchomieniach? Mam wrażenie, że obecne konstrukcje procesorów mogą być bardziej zoptymalizowane pod …
Zgłaszając złożoność algorytmu algorytmu, zakłada się, że obliczenia leżące u jego podstaw są wykonywane na jakiejś abstrakcyjnej maszynie (np. RAM), która przybliża nowoczesny procesor. Takie modele pozwalają nam raportować złożoność algorytmów w czasie i przestrzeni. Teraz, przy rozproszeniu GPGPU , zastanawia się, czy istnieją dobrze znane modele, w których można …
Myślałem, że to pytanie jest lepiej obsługiwane w części CS programu Stack Exchange. Teraz, gdy mamy GPGPU z takimi językami jak CUDA i OpenCL, czy rozszerzenia multimediów SIMD (SSE / AVX / NEON) nadal spełniają swoje zadanie? Niedawno przeczytałem artykuł o tym, jak można zastosować instrukcje SSE do przyspieszenia sortowania …
Nasze obecne komputery używają bitów, więc używają systemu liczb binarnych. Ale słyszałem, że przyszłe komputery kwantowe będą używać kubitów zamiast prostych bitów. Ponieważ w słowie „qubit” znajduje się słowo „bi”, najpierw pomyślałem, że oznacza to, że komputery kwantowe będą używać binarnych (podstawa 2). Ale potem usłyszałem, że kubity mają trzy …
Istnieje wiele szczegółów na temat dodatków typu lookahead, takich jak Kogge-Stone, Lander-Fischer itp. Na kursach CS uczelni. Są one określane jako „powszechne w branży”. Jednak nie mogę znaleźć żadnych dowodów (poza być może łańcuchem do noszenia w Manchesterze) z ostatnich czasów, że są one właściwie używane gdziekolwiek konkretnie. Wyszukiwarka Google …
Czytałem, że systemy operacyjne takie jak Android i iOS są w jakiś sposób zoptymalizowane, aby poprawić żywotność baterii. W moim rozumieniu jest to, że CPU wykonuje pewną liczbę operacji w określonym czasie, więc myślę, że można przyspieszyć aplikacje poprzez ograniczenie liczby operacji potrzebnych, ale ponieważ procesor będzie nadal robić x …
Zauważyłem, że w przewidywaniu gałęzi istnieją dwa różne typy stanów. W wykonywaniu superskalarnym, gdzie przewidywanie rozgałęzienia jest bardzo ważne i dotyczy głównie opóźnienia wykonania, a nie opóźnienia pobierania. W potoku instrukcji, gdzie pobieranie jest większym problemem, ponieważ instrukcje faktycznie nie są wykonywane aż do później. Który z nich jest bardzo …
Czytam „Duszę nowej maszyny” Tracy Kidder, w której zespół Data General projektuje nową maszynę (o kryptonimie „Eagle”, później nazwaną MV / 8000). Jest to 32-bitowe rozszerzenie poprzedniej architektury (16-bitowe środowisko Eclipse). Jednym z motywów obrotowych wydaje się być to, że nie chcą tworzyć maszyny z bitem trybu i że im …
Przeczytałem go w różnych miejscach, takich jak to , że hiperwątkowość prowadzi do obniżenia wydajności. Nie jestem w stanie zrozumieć, dlaczego ani w jaki sposób hiperwątkowanie prowadzi do degradacji. Dlaczego tak jest, że nawet jeśli Hyper-Threading pozwala systemowi operacyjnemu na wykorzystanie wolnych zasobów, następuje degradacja. Choć testy porównawcze wskazują na …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.