快取(cache)與快存(memory)
程式被編譯成 machine instruction 後,此指令會從 memory 被複製至 processor 進行處理。然而這些複製資訊所需要的時間,遠遠慢於處理器處理資訊的時間(overhead),進而使得處理器沒辦法發揮它本身的效能,兩者之間的落差(processor-memory gap)也隨著半導體技術的發展而越來越大,而快取(cache)在這之中扮演了減少兩者差距的角色。
Cache
記憶體的階層中,cache 的定位高於 memory,cache 的儲存空間更小、更快、也更昂貴。cache 是透過 SRAM(static memory)來實現,這種儲存技術需要面積相對大的電路(e.g, flip-flop)來完成,單位面積的容量小,因此容量做不多,但是存取速度快。
Memory
Memory則是透過 DRAM(dynamic memory)來實現,不同於前者的是,它是憑藉電容做「記憶」,這大幅縮減了它的面積,單位面積的容量大;然而也因其仰賴電容以及空間狹小等因素所造成的漏電(漸漸「忘記」),它需要 refresh circuit 來維持刷新電路的狀態,也需要時間做refresh,因此相較於前者耗電量較大,存取速度也較慢。
而在記憶體階層中,最頂端的是 register(L0 cache), L1 cache, L2 cache, L3 cache, (main) memory, disks…,每一階的儲存裝置皆為其下一階的快取裝置,藉此來增進處理器的效率。
keyword
- Access latency