Многоядерные процессоры: частота ядра или частота процессора? — есть ответ — Вопросы и ответы

Просто не удержался от комментария по поводу «Тот же Intel Core 2 Duo может эффективно работать, если одно из ядер будет потреблять до 1,5 МБ из общего кэша в 4МБ, а второе – до 2,5МБ. Если же оба ядра будут требовать по 2 МБ каждый – быстродействие кэша падает до быстродействия оперативной памяти, т. е. в несколько раз» (Zhumak). Вообще-то, так вольно рассуждать не стоит (прочитал статью на ixbt. ru, бывают, конечно, и хорошие статьи у них, но видимо от автора зависит), что если одно приложение столько-то расходует, а другое столько-то, то кешу «хана», затыкивается.

Архитектура кеша предполагает такую вещь как «ассоциативность кеша» и также в архтектуре кеша есть алгоритм распределения данных по линейкам кеша (выбираются несколько установочных бит адреса, что бы определить куда класть данные), линейки кеша в свою очеред имееют размер (в байтах). Так вот, к чему я веду, утвержать, что 1.5Мб на одно приложение и 2.5Мб на другое — и кеш используется эффективнее глупо!

Потому как если пространства адресов, которые используют эти самые приложения пересекаются по установочным битам и очень часто (кеш может хранить данные с одинаковыми установочными битами адресов не более чем его ассоциаивное число раз), то происходит такое явление как алиасинг, когда данные одной линейки кеша вытесняются другими данными, которые претендуют на размещение в этой же линейке кеша.

И если такое явление происходит оч. часто в L1 кеше, то его производительность падает до производительности L2 кеша, затем если данный процесс продолжается и дальше, то производительность L2, а следовательно затем и L1, падает до производительность оперативной памяти.

Таким образом производительность кеша завист в первую очередь от того, какое адресное пространство используется твоими приложениями, а только во вторую очередь от распределения 1.5Мб — 2.5Мб. Приложения могут и «умереть», если будут использовать по 1Мб каждое. Доверять статьям о производительности чего-то можно лишь только в том случае, если ты знаешь как это чего-то работает, а не просто полагаясь на мнение «эксперта».

Тут можно ознакомиться с мат. частью [1], [2], [3]. А более детальное описание только в мануалах девелоперов на конкретный процессор.

Комментарии запрещены.

Поиск