Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа моделюрующая работу Кэш-памяти, Модель кэш-памяти прямого отображения 
V
    Опции темы
dsd
Дата 26.5.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Написать моделирующую программу для одновходовой кэш-памяти прямого отображения. Сделайте чесло элементов и длину строки параметрами программы. 
Вот так задача звучит.

Я не понимую с чего начать. Я думаю может написать класс ,в нем функции чтения и записи.... а как они должны работать. Или как вообще лучше кэш память представить. Какие параметры должны быть. Как показать что сначала туда загружаются данные с опритивки, а потом их только запршивает процессор?

Подскажите ваши рекомендации.
PM MAIL   Вверх
andrew_121
Дата 26.5.2009, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(dsd @  26.5.2009,  19:56 Найти цитируемый пост)
Написать моделирующую программу для одновходовой кэш-памяти прямого отображения.

Да, написать программу, благородное дело. Но только когда это делаешь сам!
Цитата(dsd @  26.5.2009,  19:56 Найти цитируемый пост)
Сделайте чесло элементов и длину строки параметрами программы. 

Делай! Благословляю!


Или пиши в приват.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
dsd
Дата 27.5.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Так я не напистаь прошу, Это просто текст задания я написал. Я просто не знаю с чего начать. Подскажите как реализовать все это можно, класс там делать..или еще как то, как метоы можно сделать. Я просто опыта в таких заданиях не имею. А писать и сам могу.

Добавлено через 2 минуты и 37 секунд
Я не про синтаксис там спрашиваю, а про сам алгоритм. Как такие программы примерно пишутся.
PM MAIL   Вверх
andrew_121
Дата 27.5.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33





--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
dsd
Дата 2.6.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Вот у меня есть книга Тененбаума "Архитектура компьютера". Как раз от туда у меня и задача. 
Я прочитал там алгоритм. Посмотрите правильно ли я понял чтение из кэш-памяти:
Код

int ReadFromCash(int n,char addr[32])   /////addr - это адрес того чего мне надо запросить. Сама кэш память это файл
{
    char bteg[16],bstr[11],bdata[32],bbyte[2], c=0;
    int i=0,k=0,g=0;
    char teg[16],str[11],word[3],byte[2];
    FILE* f_in = fopen("cash.txt.txt","r");
///сдесь я разбеваю адрес на поля тег, строка, слово, байт
    while(k!=15)
    {
        teg[g]=addr[k];
        k++;
    }
    g=0;
    while((k>=15) && (k!=26))
    {
        str[g]=addr[k];
        k++;
    }
    g=0;
    while((k>=26) && (k!=29))
    {
        word[g]=addr[k];
        k++;
    }
    g=0;
    while((k>=29) && (k!=31))
    {
        byte[g]=addr[k];
        k++;
    }
/////////////////сдесь я ищу такой адрес в кэш-памяти
    while (!feof(f_in))
    {
        while(c!='\n')   
        {
            while(i!=15){
            c=fgetc(f_in);
            bteg[i]=c;
            i++;
            }
            while((i>=15) && (i!=26))
            {
                bstr[i]=c;
                i++;
            }
        } ////сравниваю поля строка
        if(bstr==str)
        {
            if(memteg==teg)  ///сравниваю поля тег
            {
                while((i>=26) && (i!=58))   ////если все хорошо то считываю данные
                 {
                bdata[i]=c;
                i++;
                 }
                            
            }
            else return 0;
        }
        else return 0;
    }
    fclose(f_in);
    return 1;
};


во первых программа вылетает тут гд-то, но это я сам наверно разберусь... У меня другой вопрос, я никак не пойму что мне надо в файле хранить. Там же еще бит достоверности нужен, адрес, данные.... Как все это записать? И как сделать что бы процессор просил какой-нибудь случайный адрес и он преобразовываля с char[32]. Или вообще как его лучше сделать?
PM MAIL   Вверх
andrew_121
Дата 2.6.2009, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(dsd @  2.6.2009,  17:35 Найти цитируемый пост)
У меня другой вопрос, я никак не пойму что мне надо в файле хранить

А для чего тебе файл? Ну разве чтоб сливать при нехватке оперативы...

И ваще. Тебе нужен симулятор...на сколько я понял...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
dsd
Дата 4.6.2009, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Ну да, симулятор. Просто модель всего этого алгоритма. Кеш-память и оператива у меня файлы.

PM MAIL   Вверх
fry
Дата 4.6.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 4.10.2006

Репутация: 2
Всего: 3



Цитата

у да, симулятор. Просто модель всего этого алгоритма. Кеш-память и оператива у меня файлы.


Если симулятор, то прокатит вариант с: если необходимо, что бы данные казались закэшированными выдаем их сразу; если необходимо чтобы данные казались не закэшированными, то ждем и выводим. Т.е. иными словами здесь алгоритм кэша нах не нужен.
Это насчет симулятора, теперь насчет модели: модель должна представлять максимально упрошенное отражение работы реального алгоритма. 

Т.е:
1)На вход: запрос данных
Кеш сигнализирует, что данных нет.

2)На вход: заполнение кэша этими данными
Кэш запоминает эти данные.
На выходе: внесенные в кэш данные

Теперь:
1)На вход: запрос данных
Кеш сигнализирует, что данные есть.
На выходе: внесенные в кэш данные.

Чуствуешь разницу.   smile 

ЗЫ Кстати то, что я описал есть тоже модель кэширования, однако в текстовом исполнении.

Добавлено через 5 минут и 36 секунд
Цитата

А для чего тебе файл? Ну разве чтоб сливать при нехватке оперативы...


в реальном коде вопрос действительно более чем уместен, но

Цитата

Написать моделирующую программу 


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

Это сообщение отредактировал(а) fry - 4.6.2009, 14:31
PM MAIL   Вверх
dsd
Дата 6.6.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Спасибо. Вроде что то написал. Покрайней мере вопросов пока нет. Сделал входной файл с адресами, а выходной с данными котрые по этим адресам лежат. 
Только один вопрос пока. Я адрес делаю как unsigned int, тоесть на пример "адрес=21". Потом при помощи битовых сдвигов влево и вправо выделяю в нем поля тега и т.д. Это я правильно так делаю?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.