Dies ist eine sehr komplizierte Frage, erwarten Sie ein paar Antworten, da die Antworten anderer besser sind :)
Der Professor sagte, der beste Ort für die Ausführung von Programmen sei der Cache.
Denken Sie daran, dass der Cache viele Male teurer ist als normaler Arbeitsspeicher. Damals, als ein "großer" Computer 8 MB (keine Gigs, Megabytes) hatte, konnte man feststellen, dass alle Computer "Cache" waren (technisch gesehen handelt es sich dabei um einen speziellen RAM-Typ namens SRAM), aber sie waren teurer. Jetzt haben Sie Heimcomputer mit 4 GB Speicher, 4 GB SRAM, die mit dem Chip verkabelt sind, wären SEHR teuer. Außerdem haben Sie viele intelligente Leute, die mit Programmen und Compilern spielen, um den Cache optimal zu nutzen. Mit dem richtigen Caching-Algorithmus erhalten Sie 95% des Cache-Nutzens bei einem geringen Prozentsatz der Kosten. Natürlich sind die Vermutungen nicht immer richtig. Google 'Branchenvorhersage' für weitere Informationen.
Ich habe mich gefragt, warum Programme nicht in Registern ausgeführt werden können.
Register sind das, was eigentlich Daten und Adressen lädt und speichert. Betrachten Sie sie als Taxis. Sie können Dinge hin und her liefern, was sie liefern, sind Ihre Programmdaten und Adressen. Jeder Teil Ihres Programms, der ausgeführt wird, durchläuft ein Register.
Ich nehme an, Sie fragen, warum Sie nicht einfach aus den Registern laufen können. Ein Grund - es gibt so wenige von ihnen. Klassische Intel x86-Register werden in Bytes gezählt, die Programme werden jedoch in Megabytes (Gigabytes) angegeben. Sie wären eine recht reiche Person, wenn Sie einen Chip hätten, der MS-Word aus den Registern führen könnte.
Wie kann sich ein Programm auch in den Cache laden?
Das Programm nicht. Das Betriebssystem führt das Programm aus und verwendet den Memory Management Unit-Chip, um die Programmbereiche aus dem normalen RAM zu laden. Während dies der Fall ist, ist die MMU intelligent und legt einen Teil des Speichers auch in den Cache. Mit der Idee, dass ich sie gerade verwendet habe, muss ich sie möglicherweise bald wieder verwenden.
Ist der Cache nicht etwas, das von der CPU gesteuert wird und automatisch ohne Software-Steuerung funktioniert?
Ja, technisch gesehen ist der Speicherverwaltungschip nicht die CPU. Früher war dies ein separater Chip, aber jetzt ist er Teil des CPU-Blocks, um die Kommunikation zu beschleunigen.