Предходна страница
 
 


3.2. Вътрешна памет

            Обема и разположението на вътрешната памет са различни за различните устройства. Процесорите 'C6201, 'C6202 и 'C6701 имат отделни програмна памет и памет за данни (архитектура Harvard), докато 'C6211 има една част от вътрешната си памет, която може да се използва за програми и за данни. Таблица 3-1 показва конфигурацията на вътрешната памет на устройствата от серията 'C6000. Описанията на различните кеш архитектури са показани в таблица 3-2.
 
 

Табл.3-1.Конфигурации на вътрешната памет на TMS320C6000


Устройство
CPU
Архитектура на вътрешната памет
Общ обем памет
(байта)
Програмна памет
(байта)
Памет за данни
(байта)
Унифицирана памет
(байта)
’C6201 
6200
Harvard
128K
64K(адресно пространство/кеш)
64K
Няма
’C6701
6700
Harvard
128K
64K(адресно пространство/кеш)
64K
Няма
’C6202
6200
Harvard
384K
128K(адресно 
пространство)
128K(адресно пространство/кеш)
128K
Няма
’C6211
6200
Harvard (L1)
Унифицирана (L2)
72K
4K(кеш)
4K (кеш)
64K(адресно пространство/ кеш)

 
 
 
 

Табл.3-2.Кеш архитектури на TMS320C6000


Кеш
 Обем (байта) 
Вид
Размер на линия(бита) 
’C6201-програмен кеш
64K
Direct mapped
32
’C6701-програмен кеш
64K
Direct mapped
32
’C6202-програмен кеш
128K
Direct mapped
32
’C6211 L1P
4K
Direct mapped
64
’C6211 L1D
4K
2-областен
32
’C6211 L2
64K
1- до 4-областен
128

 
 

3.2.1. TMS320C6201

            DSP процесорът TMS320C6201 има 64Kbytes вътрешна програмна памет и 64 Kbytes вътрешна памет за данни. Програмната памет може да се избира за програмен кеш,който се използва при работа с външна памет. Програмната памет има дължина на думата 256 бита, които представляват един пакет за зареждане. Когато търсените данни не се намират в кеша, се зарежда една дума от външната памет. Вътрешната памет за данни се състои от четири банки с дължина на думата 16 бита. DMA или CPU може да има достъп до всяка банка по веднъж на всеки цикъл, като всички банки са достъпни в цикъла. Т. к. CPU-то има две страни (А и В), то CPU и DMA могат да осъществят достъп до паметта за данни до три пъти в един цикъл.
 
 

3.2.2. TMS320C6201B

            DSP процесорът TMS320C6201B има 64Kbytes вътрешна програмна памет и 64 Kbytes вътрешна памет за данни (като 'C6201). Пространството на програмната памет еидентично и може да се използва като програмен кеш. Дължината на думата на програмната памет е 256 бита , които представляват един пакет за зареждане. Когато търсените данни не се намират в кеша, се зарежда една дума от външната памет.
            Вътрешната памет за данни слабо се различава от тази на 'C6201 и е модифицирана с цел да се увеличи достъпа до данните , който може да се реализира всеки цикъл от три източника. Вместо от четири банки , DSP 'C6201B се състои от осем банки с разредност 16 бита. Те са разделени на два блока от по четири банки - първите четири в долната половина от паметта за данни и последните четири в горната половина.DMA или CPU имат достъп до всяка банка веднъж на цикъл, като всички банки са достъпни в цикъла. При тази конфигурация на паметта могат да се извършват до три 32-битови достъпа - два от CPU и един от DMA.

 
 









3.2.3. TMS320C6701

            Конфигурацията на паметта на DSP TMS320C6701 е почти същата като тази на 'C6201B. Той също има 64 Kbytes вътрешна програмна памет и 64 Kbytes вътрешна паметза данни, като програмната памет може да се избира и като програмен кеш. Програмната памет има дължината на думата 32 байта, които представляват един пакет за зареждане. Когато търсените данни не се намират в кеша, се зарежда една дума от външна памет.
Вътрешната памет за данни се състои от два блока по осем 16-битови банки. Тазиособеност позволява едновременно извършване на зареждане с двойна точност от CPU и достъп до данни за DMA в един цикъл. Тази нова конфигурация на паметта позволявадва 64-битови достъпа на CPU (инструкция LDDW само) и един 32-битов достъп на DMA до данни в един цикъл.
 
 












3.2.4. TMS320C6202

            DSP процесорът TMS320C6202 има 256Kbytes вътрешна програмна памет и 128 Kbytes вътрешна памет за данни. Програмната памет се състои от две банки по 128 Kbytes, като едната може да се използва и като програмен кеш. Това осигурява при необходимост 128 Kbytes програмна памет и 128 Kbytes програмен кеш. Дължината на думата на програмната памет е 32 байта, които представляват един пакет за зареждане. Когато търсените данни не се намират в кеша, се зарежда една дума от външна памет.
            Вътрешната памет за данни е конфигурирана, както при 'C6201B , в осем 16-битови банки. Те са разделени на два блока от по четири банки - първите четири в долната половина от паметта за данни и последните четири в горната половина. DMA или CPU имат достъп до всяка банка веднъж на цикъл, като всички банки са достъпни в цикъла. При тази конфигурация на паметта могат да се извършват до три 32-битови достъпа до данни в един цикъл.

 
 










3.2.5. TMS320C6211

            DSP процесорът TMS320C6211 има 4 Kbytes програмен кеш от ниво 1 (Level-One Program cache (L1P)) и 4 Kbytes кеш за данни от ниво 1 (Level-One Data cache (L1D)). Тези кеш памети са винаги активни и не са включени в картата на паметта. Дължината на думата на L1P е 64 байта (два пакета за зареждане), докато дължината на думата на L1D е 32 байта (осем думи). При ненамиране на търсената информация в кеша от паметта се зарежда цял пакет, който съдържа търсената информация. За кеша за инструкции това осигурява предварително зареден пакет с инструкции, докато зареждането на данни прочита съседни елементи данни. Целият кеш от ниво 1 е прозрачен за потребителя.
            На адрес 0 от вътрешната памет е разположен 64 Kbytes RAM за данни и инструкции. Тази памет може да се конфигурира в един от пет режима, за да осигури кеш от ниво 2(Level-two cache) (за инструкции и данни), както е показано в таблица 3-3. Паметта SRAM от ниво 2 (L2) винаги започва от адрес 0 независимо от избраниярежим за кеша. Дължината на кеша може да се променя.

 
 

Табл.3-3.Режими на работа на L2


Режим на L2
Обем на кеша
Обем SRAM
000
0K
64K
001
16K 1-областен
48K
010
32K 2-областен
32K
011
48K 3-областен
16K
100
Резервиран
101
Резервиран
110
Резервиран
111
64K 4-областен
0K

 
 
 
 
 

3.2.6. Достъп до паметта за данни

            При 'C6201, 'C6202 и 'C6701 контролерът на паметта за данни обслужва всички обръщения на CPU или DMA към вътрешната памет за данни. DSP 'C6211 има контролер за кеш за данни от ниво 1 (L1D) и контролер за кеш от ниво 2 (L2). Контролерът наL1D обслужва заявките на процесора и ги изпраща към контролера на L2 при неуспешнотърсене в кеша от ниво 1. Заявките за данни на EDMA отиват директно към контролера на L2.
 
 



















3.2.7. TMS320C6201, 'C6202, 'C6701

            CPU-то изпраща заявки към контролера на паметта за данни по две адресни магистрали (DA1 и DA2). Данните за записване се изпращат по шините за запис наCPU-то (ST1 и ST2). Прочетените данни се получават по шините за зареждане на данни на CPU-то (LD1 и LD2). Заявките на CPU за четене и запис на данни се насочват в зависимост от адреса на заявената памет към вътрешната памет за данни, към вградената периферия чрез контролера за периферия или към интерфейса за външна памет.
            Контролерът на паметта за данни се свързва с вътрешната памет за данни и извършва арбитриране на CPU/DMA за достъп до вградения RAM. На фиг. 3-3 са показани CPU-то,контролерът на паметта за данни и шините за връзка с периферията.

 
 

Фиг.3-3.Свързване на контролера на паметта за данни при TMS320C6201/C6202/C6701

____ - плътната линия индицира данни

------ - прекъснатата линия индицира заявки
 
 




3.2.8. TMS320C6211

При TMS320C6211 CPU-то изпраща заявки към контролера на L1D по същия начин,както 'C6201, 'C6202 и 'C6701 изискват данни от контролера на паметта за данни.При ненамиране на данни или при запис контролерът на L1D изпраща заявка към контролера на L2 да изпълни действието. Тогава контролерът на L2 може да осъществи достъп до кеш L2/памет или да изпрати заявката към EDMA.
 
 

Фиг.3-4.Свързване на контролера на паметта за данни при TMS320C6211


 
 
 
 
 
 
 

3.2.9. Периферна магистрала

            Периферията се конфигурира чрез група управляващи регистри, включени в картата на паметта. Контролерът на периферната магистрала извършва арбитраж на достъпа до тези управляващи регистри. При 'C6201, 'C6202 и 'C6701 DMA-то има директен достъп до контролера на периферната магистрала, а CPU-то получава достъп до него чрез контролерана паметта за данни. При 'C6211 контролерът на периферната магистрала влиза в състава на контролера на L2. Достъпът до него на EDMA е директен, докато CPU-то получавадостъп чрез контролера на L1D.
            Контролерът на периферната магистрала преобразува всички обръщения към периферната магистрала в обръщения към дума. Това повлиява на всички записи в управляващия регистър, т. к. байт или полудума ще бъдат третирани като беззнакова 32-битова дума. При четене са достъпни и индивидуални байтове.

 
 

Достъп до байт и полудума при 'C6201/C6701

            Контролерът на периферната магистрала преобразува всеки достъп до периферната магистрала в достъп до дума. Обаче при четене CPU и DMA могат да извлекат подходящичасти от думата, за да извършат коректен достъп до байт и полудума. Страничните ефекти, причинени от четене на регистъра за управление на периферията, възникват независимо от това кои байтове се четат. За запис на байт или полудума CPU и DMA осигуряват коректни стойности само на разрешените байтове.В таблица 3-4 са показани коректните стойности. Ето защо неопределен резултат ще бъде подаден към неразрешени байтове. Ако потребителя не се грижи за стойностите в неразрешените байтове, това е приемливо. В противен случай трябва да се осъществи достъп до периферните регистри само чрез достъп до дума.
 
 

Табл.3-4. Съдържание на паметта след запис на думи с подреждане Little Endian и Big Endian


Вид достъп
Адресни битове (1:0)
Резултат в паметта при Big Endian
Резултат в паметта при
Little Endian
Дума
00
XXXXXXXX
XXXXXXXX
Полудума
00
XXXX????
????XXXX
Полудума
10
????XXXX
XXXX????
Байт
00
XX??????
??????XX
Байт
01
??XX????
????XX??
Байт
10
????XX??
??XX????
Байт
11
??????XX
XX??????
Забележка: Х - показва коректно записаните полубайтове.
                     ? - показва полубайтовете с недефинирана стойност след запис.

 
 

Цикли на изчакване на CPU при 'C6201/C6701

            Единичен достъп на CPU до контролера на периферната магистрала предизвиква шест цикъла на изчакване за CPU. Тези цикли се въвеждат с цел изчакване на периферията и арбитрирането.
 
 

Арбитриране на CPU/DMA при 'C6201/C6701

            Контролерът на периферната магистрала извършва арбитриране между CPU и DMA за достъп до периферната магистрала. Както при достъп до вътрешни данни, бит PRI в DMA определя приоритета между CPU и DMA.Ако възникне конфликт CPU (чрез контролера на паметта за данни) и DMA, източникът на заявка с по-нисък приоритет се задържа, докато източникът с по-висок приоритет завърши работата си с контролера на периферната магистрала. При арбитраж периферната магистрала се разглежда като единичен ресурс. Затова източникът с по-нисък приоритет се блокира по отношение на цялата периферия, а не само по отношение на тази, която се адресира от източника с по-висок приоритет.
 
 







3.2.10. Магистрала за разширение

            Магистралата за разширение на 'C6202 е 32-битова и поддържа синхронен FIFO интерфейс, асинхронен интерфейс и два host-режима. Двата host-режима са синхронен Master/Slave и асинхронен. Изборът на един от двата се извършва при стартиране чрез резистори, свързани към маса или захранване. Магистралата за разширение замества HPI и увеличава възможностите за работа с различни памети.

            За повече информация виж т. 4. 4.
 
 

Следваща страница 1