Mikroişlemcilere dayalı otomatik sistemlerin tasarımı. Mikroişlemci sistemlerinin geliştirilmesi Mikroişlemci sistemlerinin tasarım aşamaları

  • 06.11.2021

Mikroişlemci sistemlerinin tasarımı

Tanıtım

Mikrodenetleyiciler kullanarak bilgisayar sistemleri geliştirme görevi, çalışma prensipleri hakkında bilgi ve anlayış gerektirir, ancak asıl şey kontrol programları yazmaktır. Bu kitabın amacı, mikrodenetleyici cihazlarının nasıl tasarlanacağını öğrenmektir.

Kitapta verilen tüm örnekler için temel çip olarak popüler Atmel AVR mikroişlemci ailesinden Atmega 128 çipi kullanılmıştır. Okuyucunun hem mikroişlemci teknolojisi ilkeleri hem de bu mikrodenetleyicinin mimarisi hakkında temel bir anlayışa sahip olduğu varsayılmaktadır.

Mikrodenetleyici için program, özel program belleğine kaydedilen bir dizi koddur. Program, şu veya bu belirli mikroişlemci sistemini geliştiren, ancak asla kodlarla ilgilenmeyen bir programcı tarafından yazılmalıdır. Bir kişinin, her biri kendi anlamlı adı olan komutlarla çalışması daha uygundur. Bu nedenle, bir program yazmak için bir programlama dili kullanılır.

Dilin ana görevi, mikrodenetleyicinin gerçekleştirmesi gereken eylemlerin sırasını açık bir şekilde tanımlamaktır. Aynı zamanda, dil bir kişi tarafından anlaşılır olmalıdır.

Bir program oluşturma sürecinde, programcı metnini başka herhangi bir metinle aynı şekilde bilgisayara yazar. Ardından programcı özel bir program başlatır - programcı tarafından yazılan metni mikroişlemci tarafından anlaşılabilir makine kodlarına çeviren bir çevirmen.

Programcı tarafından yazılan programın metnine denir. ilk veya nesne kodu. Çeviriden elde edilen kod denir sonuç veya makine kodu. Mikrodenetleyicinin program belleğine yazılan bu koddur. Ortaya çıkan kodu yazmak için özel cihazlar kullanılır - programcılar.

Tüm programlama dilleri iki gruba ayrılır:

düşük seviyeli diller (makine odaklı);

üst düzey diller.

Assembly dili, makine yönelimli bir dilin tipik bir örneğidir. Yakın geçmişte, mikrodenetleyiciler için tek programlama dili Assembly diliydi. Şu anda, programlama için üst düzey diller kullanılmaktadır, örneğin TEMEL, Xi vb. Bu diller bir zamanlar büyük bilgisayarlar için geliştirilmişti. Ama şimdi yaygın olarak mikrodenetleyiciler için kullanılıyorlar.

Üst düzey dillerin avantajı, program geliştirme sürecinin önemli ölçüde hızlandırılmasıdır. Tüm yüksek seviyeli diller arasında C, belki de en verimli olanıdır. Bu nedenle, gelecekte örnekleme için bu dili seçeceğiz. Farklı mikroişlemci aileleri için farklı dil sürümleri geliştirilmiştir. Örneğin, AVR ailesinin mikroişlemcileri için - C AVR.

Bölüm 1. Mikrodenetleyiciler için program yazma

C dilinin unsurları

Bir C programında MK kayıtları (kayıtlar MK AVR'nin belleğindeki hücre baytlarıdır) adlara sahiptir ve bunların çoğunda sayılar değiştirilebildiğinden, kayıtlar esasen program için değişkenlerdir.
Değişken- bu, bir sayı veya sayıyı saklayabileceğiniz ve değiştirebileceğiniz bellekteki bir hücre grubudur. Değişkenin bir adresi ve adı vardır.

Devamlı- bir değişken gibi ama içeriğini değiştiremezsiniz.

sabitler

Sabitler, programda listelenen değerlerdir. C dilinde dört tür sabit vardır: tamsayı sabitleri, kayan nokta sabitleri, karakter sabitleri ve dize değişmezleri.

Tamsayı sabiti: Bu, bir tamsayı değerini şu biçimlerden birinde temsil eden bir ondalık, sekizlik, onaltılık veya ikili sayıdır: ondalık, sekizlik, onaltılık veya ikili.

Bir ondalık sabit, bir veya daha fazla ondalık basamaktan oluşur ve ilk basamak sıfır olmamalıdır (aksi takdirde sayı sekizli olarak değerlendirilir).

Sekizlik sabit, zorunlu bir sıfır ve bir veya daha fazla sekizlik basamaktan oluşur (rakamlar arasında sekiz ve dokuz bulunmamalıdır, çünkü bu basamaklar sekizli sayı sistemine dahil değildir).

Bir onaltılık sabit, zorunlu 0x veya 0X dizisiyle başlar ve bir veya daha fazla onaltılık basamak içerir (bir onaltılık basamak kümesini temsil eden basamaklar: 0,1,2,3,4,5,6,7,8,9,A,B , C,D,E,F).

Bir ikili sabit, öncesinde 0b dizisinin gelmesi gereken ikili karakterler kullanılarak yazılır.

ör. - Tamsayılar yazılabilir:

Ondalık: 12 234 -5493

0b ile ön ekli ikili biçimde: 0b101001

0x ile ön ekli onaltılık biçimde: 0x5A

0 öneki ile sekizli biçimde: 0775

Negatif bir tamsayı sabiti oluşturmak istiyorsanız, sabiti yazmadan önce "-" işaretini kullanın (buna tekli eksi denir). Örneğin: -0x2A, -088, -16 .

Her tamsayı sabitine, sabitin ifadelerde kullanılması durumunda gerçekleştirilecek dönüştürmeleri belirten bir tür atanır. Bir sabitin türü şu şekilde tanımlanır:

Ondalık sabitler, işaretli değerler olarak kabul edilir ve sabitin değerine göre int (tamsayı) veya uzun (uzun tamsayı) türü atanır. Sabit, 32768'den küçükse, int türü, aksi takdirde uzun olarak atanır.

Sekizlik ve onaltılık sabitlere bir tür atanır int, imzasız int(İşaretsiz tam sayı), uzun veya imzasız uzun Tablo 1.1'e göre sabitin değerine bağlı olarak.

Tablo 1.1

Onaltılık sabitlerin aralığı Sekizlik sabitlerin aralığı bir tip
0x0 - 0x7FFF 0 - 077777 int
0X8000 - 0XFFFF 0100000 - 0177777 imzasız int
0X10000 - 0X7FFFFFFF 0200000 - 017777777777 uzun
0X80000000 - 0XFFFFFFFF 020000000000 - 037777777777 imzasız uzun

Bir kayan noktalı sayı, bir tamsayı kısımdan, bir kesirli kısımdan ve/veya bir üsten oluşur. Kayan nokta sabitleri, çift duyarlıklı pozitif değerleri temsil eder (çift tipi). Negatif bir değer belirlemek için eksi işareti ve pozitif sabitten oluşan sabit bir ifade oluşturmak gerekir.

Örnekler: 115.75, 1.5E-2, -0.025, .075, -0.85E2

Bir karakter sabiti, kesme işaretleri içine alınmış bir karakterle temsil edilir. Bir karakter sabitinin değeri, sayısal karakter kodudur.

Örneğin, "Q", Q harfidir.

Karakter sabitleri int türündedir ve tür dönüştürme sırasında bir işaretle doldurulur.

Bir dize sabiti (literal), tırnak işaretleri (") içine alınmış bir karakter dizisidir (dize ve büyük Rus ve Latin harflerinin yanı sıra sayılar dahil).

Örneğin, "Hello"

Bir dize değişmezinin karakterleri RAM'in bir bölgesinde depolanır. Derleyici, her dize değişmezinin sonuna \0 kaçış dizisiyle temsil edilen bir boş karakter ekler. Bir dize değişmezi char türündedir.

1.1.2. tanımlayıcı

Tanımlayıcı, harf veya özel karakterin önce gelmesi koşuluyla, özel karakterlerin yanı sıra bir sayı ve harf dizisidir. Tanımlayıcıların oluşturulması için Latin alfabesinin küçük veya büyük harfleri kullanılabilir. Alt çizgi (_) özel karakter olarak kullanılabilir. Eşleşen küçük ve büyük harfler kullanılarak oluşturulan iki tanımlayıcı farklı kabul edilir. Örneğin: abc, ABC, A128B, a128b .

Bir değişken, fonksiyon, yapı vb. bildirme aşamasında bir tanımlayıcı oluşturulur. bundan sonra, geliştirilen programın sonraki ifadelerinde kullanılabilir. Tanımlayıcı, anahtar sözcükler, ayrılmış sözcükler veya C derleyici kitaplığı işlev adlarıyla aynı olmamalıdır.

anahtar kelimeler

Veri türleri ve beyanları

C dili ve diğer diller arasındaki önemli bir fark, programda kullanılan tüm değişkenleri, karşılık gelen türlerinin bir göstergesiyle birlikte açıkça bildirme ihtiyacına yol açan varsayılan ilkenin olmamasıdır.

Değişken bildirim formatı aşağıdaki gibidir:

[]

- Bellek sınıfı belirteci - SI dilinin dört anahtar sözcüğünden biri tarafından tanımlanır: auto, extern, register, static ve bir yandan bildirilen değişken için belleğin nasıl ayrılacağını ve diğer yandan belleğin nasıl ayrılacağını gösterir, bu değişkenin kapsamı, yani programın hangi bölümlerinden ona erişebileceğiniz. Gerekli değildir ve sadece bazı durumlarda gereklidir.

- değişken programın diğer kaynak kod dosyalarında kullanılabiliyorsa;

- değişken yerel ise, parantezden sonra bazı işlevlerde bildirilir ve bu işleve bir sonraki çağrıya kadar değerlerini koruması gerekir;

- değişkeni MK kayıtlarına yerleştirin.

genel değişkenler herhangi bir işlevin metninde görünmeden önce bildirilir. Bir kez bildirildiğinde, global değişkenler herhangi bir program işlevinde kullanılabilir.

yerel değişkenler işlevlerin en başında bildirilir - yani. kıvırcık parantezden sonra.

- değişkenin saklayabileceği verilerin tür belirteci.

Değişkenler için ayrılan bellek alanının değer aralığını ve boyutunu belirleyen tamsayı türü verileri tanımlamak için çeşitli anahtar kelimeler kullanılır.

Örneğin,

İmzasız karakter - 0 ile 255(bayt) arasında bir sayı saklar;

Unsigned Int - 0 ile 65535 (iki bayt) arasında bir sayı saklar;

Unsigned long Int - 0 ile 4294967295 (dört bayt) arasında bir sayı saklar.

Unsigned char yerine sadece char yazabilirsiniz, çünkü derleyici char'ı varsayılan olarak imzasız olarak değerlendirir.

Signed char - imzalı bir değişken anlamına gelir ve -128 ile 127 arasında bir sayı saklar.

İmzalı ve imzasız anahtar sözcükler, bildirilen değişkenin sıfır bitinin nasıl yorumlandığını gösterir, yani, imzasız anahtar sözcük belirtilmişse, sıfır biti sayının bir parçası olarak yorumlanır, aksi takdirde sıfır biti bir işaret olarak yorumlanır. unsigned anahtar sözcüğünün yokluğunda, tamsayı değişkeni imzalı olarak kabul edilir. Tür belirteci, imzalı veya imzasız bir anahtar türünden ve ardından bir değişken tanımlayıcıdan oluşuyorsa, int değişkeni olarak kabul edilir. Örneğin:

imzasız int n; imzasız int b; int c; (imzalı int c olduğu varsayılarak), imzasız d; (imzasız int d varsayılarak);imzalı f; (imzalı int f varsayılarak).

Herhangi bir türden bir değişken değiştirilemez olarak bildirilebilir. Bu, tür belirtecine const anahtar sözcüğü eklenerek elde edilir. const türündeki nesneler salt okunur verileri temsil eder, yani. bu değişkene yeni bir değer atanamaz. Const kelimesinden sonra tür belirteci yoksa, tür belirteci int'nin ima edildiğini unutmayın. const anahtar sözcüğü bileşik türlerin (dizi, yapı, karışım, numaralandırma) bildirilmesinden önce geliyorsa, bu, her öğenin değiştirilemez olması gerektiği gerçeğine yol açar, yani. yalnızca bir kez değer atanabilir.

const double A=2.128E-2;const B=286; (const int B=286) sabit char_string sabiti =”bu bir dize sabitidir”

yüzer veri

Bir kayan noktalı sayıyı temsil eden değişkenler için şu tip değiştiriciler kullanılır: float, double, long double (uzun çift dilin bazı uygulamalarında SI yoktur).

Float türü değiştiricili bir değer 4 bayt kaplar. Bunlardan 1 biti işaret için, 8 biti fazlalık için ve 23 biti mantis için ayrılmıştır. Mantis'in en önemli bitinin her zaman 1 olduğuna dikkat edin, bu nedenle dolgulu değildir, bu nedenle kayan nokta değişkeninin aralığı yaklaşık olarak 3.14E-38 ila 3.14E+38'dir. Çift değer bellekte 8 bayt yer kaplar. Biçimi, kayan biçime benzer. Bellek bitleri şu şekilde tahsis edilir: işaret için 1 bit, üs için 11 bit ve mantis için 52 bit. Mantisin atlanan yüksek biti göz önüne alındığında, değer aralığı 1.7E-308 ile 1.7E+308 arasındadır.

float f, a, b;çift x, y;

- değişken ismi. Örneğin imi değişkenleri.

Değişkenler için küçük harfler kullanmak ve değişken adlarını işlev adlarından ayırt etmek için, değişken adları bir harfle ve işlev adları (ana hariç) bir alt çizgi ile başlayabilir.

Örneğin, değişimim , _senin funkzia'n.

Genel değişkenler ve ayrıca statik değiştiricili yerel değişkenler, başka değerler atanmadıkça, programı başlatırken ve yeniden başlatırken 0'a eşittir.

Değişken bildirimlerine bazı örnekler:

İmzasız Karakter my_change=34 ; /* my_peremen, 34 değerinde (isteğe bağlı) Unsigned Char olarak tanımlanır */

İmzasız Int büyük_ değişiklik=34634; /* big_ change, Unsigned Int */ olarak bildirildi.

dizi bildirimi

Diziler, aynı tipteki (double, float, int, vb.) elemanlar grubudur. Derleyici, dizi bildiriminden dizi öğelerinin türü ve sayıları hakkında bilgi almalıdır. Bir dizi bildiriminin iki biçimi vardır:

tür belirleyici tanımlayıcı [const - ifade];

tür belirleyici tanımlayıcı ;

Tanımlayıcı bir dizi tanımlayıcısıdır.

Tür belirteci, bildirilen dizinin öğelerinin türünü belirtir. Dizi öğeleri, işlevler veya geçersiz öğeler olamaz.

Köşeli parantez içindeki sabit ifadesi, dizideki öğelerin sayısını belirtir. Aşağıdaki durumlarda bir dizi bildiriminden bir sabit ifade atlanabilir:

Bildirildiğinde, bir dizi başlatılır;

Dizi, biçimsel bir işlev parametresi olarak bildirilir.

C dili yalnızca tek boyutlu dizileri tanımlar, ancak bir dizi öğesi dizi olabileceğinden çok boyutlu dizileri de tanımlayabilirsiniz. Her sabit ifade kendi köşeli parantezleri içinde olacak şekilde, dizi tanımlayıcısını izleyen sabit ifadelerin bir listesi olarak resmileştirilirler.

Köşeli parantez içindeki her sabit ifade, belirli bir dizi boyutu boyunca öğelerin sayısını tanımlar; bu nedenle, iki boyutlu bir dizi bildirimi iki sabit ifade içerir, üç boyutlu bir dizi bildirimi, üç içerir vb. C'de dizinin ilk elemanının 0 indeksine sahip olduğuna dikkat edin.

Char kütlesi - elemanların numaralandırılması 0'dan başlar, yani. bu dizinin elemanlarına kütle, kütle denir ve 11, 22, 33 sayılarını saklarlar. Programda bir yerde elemana bir değer atanabilir, örneğin kütle = 210. Öğelere değer atayamazsınız.

Bir karakter dizisi içeren bir dize değişkeni veya dizisi, örneğin,

Karakter vuruşu =”Merhaba”, yalnızca beş karakter içermesine rağmen 6 öğeyi tanımlar. Altıncı öğe, \0 dizesinin sonuna eklenen kontrol karakteridir.

Bir karakter dizisi, eleman sayısı belirtilmeden de bildirilebilir.

Örneğin,

Char str = ”karakter dizisi bildirimi”

İfadeler ve atamalar

İşlenenler ve İşlemler

Belirli bir değerle sonuçlanan operatör işaretleri ve işlenenlerin birleşimine ifade denir. Operatör işaretleri, işlenenler üzerinde gerçekleştirilecek işlemleri tanımlar. Bir ifadedeki her işlenen bir ifade olabilir. Bir ifadenin değeri, işlem işaretlerinin ve parantezlerin ifadedeki konumuna ve ayrıca işlemlerin önceliğine bağlıdır.

C dilinde atama aynı zamanda bir ifadedir ve böyle bir ifadenin değeri atanan değerdir.

Bir işlenen, sabit, değişmez, tanımlayıcı, işlev çağrısı, dizin ifadesi, öğe seçici ifadesi veya işlenenler, işleç işaretleri ve parantezlerin birleşiminden oluşan daha karmaşık bir ifadedir. Sabit bir değeri olan herhangi bir işlenene sabit ifade denir. Her işlenenin bir türü vardır.

Bir değişkene (bir kayıt defterine) bir sayı koymak için, C dilinde “ atama operatörü vardır. = ". C'deki bu sembol, atama operatörünün sağındakinin sonucunu hesaplamak ve bu sonucu bulunan bir değişkene yerleştirmek anlamına gelir. Sola atama operatörü.

1.PORTB=PINB+34; /* Bu C satırı, PINB değişkeninin (kayıt) değerini alın (okuyun) ve ardından buna 34 sayısını ekleyin ve sonucu PORTB değişkenine koyun anlamına gelir */

2. DEĞİŞKEN=PİNÇ; /* Bu C satırı, PINC (kaydet) değişkeninin değerini almak (okumak) ve sonucu VARIABLE adlı bir değişkene yerleştirmek anlamına gelir */
3. Değişkenin “=” solunda olduğu ancak & PORTB& =0x23; C'de PORTB değişkeninin içeriğini okumak, ardından okunan değer ile 0x23 sayısı arasında bir "bitsel (bitsel) mantıksal VE" gerçekleştirmek ve sonucu PORTB değişkeni 4'e yerleştirmek (yazmak, atamak) anlamına gelir. değişken “=” PORTB= 0x23'ün hemen solundadır; C'de - PORTB değişkeninin içeriğini okumadan, daha önce orada olanı yok ederek ona 0x23 değerini atayın.
& "VE" (VE - sadece 1 ve 1 verir 1) yerine başka bitsel mantıksal işlemler olabilir: | "VEYA" (VEYA sadece 0 ve 0, 0 verir) ^ "XOR" ("1" karşısındaki XOR değişim biti) ~ "bit ters çevirme" (INV yazmaç bitlerini zıt karakterlere değiştirir) ve aritmetik işlemler: + - * / %
Atama operatörü kısaltmalar kullanır:
UZUN KAYIT ANLAM AZALTILMIŞ
x = x + 1; 1 ekle x++; veya ++x;
x = x - 1; 1 çıkar x--; veya --x;
x = x + y; y ekle x += y;
x = x - y; y'yi çıkarmak x -= y;
x = x * y; y ile çarp x *= y;
x = x / y; y'ye böl x /= y;
x = x %y; bölümün geri kalanı x %= y;
x--; 1 çıkar x -= 1;
x++; 1 ekle x += 1;

C'de, atama operatörü olmadan bir değişkenin değerini değiştiren işlemler vardır:

PORTA++;/* Bu C satırı, PORTA değişkeninin değerini alın, buna 1 ekleyin ve sonucu PORTA'ya geri yazın anlamına gelir. artış PORTA'yı kaydedin */

PORTC--;/* Bu C çizgisi tam tersi anlamına geliyor! azalma- PORTC kaydının değerinden 1 çıkarın */

Bir ifadede bir artış veya azalma kullanıldığında, iki + veya - işaretinin değişkenden önce veya sonra nerede olduğu önemlidir:

a=4; b=7; a = b++;/* Bu C satırı şu anlama gelir: b'nin değerini alın, a'ya atayın, ardından 1'i b'ye ekleyin ve sonucu b'de saklayın. Şimdi a 7 sayısını içerecek, b 8 sayısını içerecek */ a=4; b=7; a = ++b;/* Bu C satırı şu anlama gelir: b değişkeninin değerini alın, ardından buna 1 ekleyin ve sonucu b'de saklayın ve aynı sonucu a değişkenine atayın. Şimdi a, 8 sayısını içerecek ve b içerecek 8 sayısı */ 1.2 .2 C x + y// toplamada aritmetik işlemler x - y// çıkarma x * y// çarpma x / y/*. Sayılar tamsayıysa, sonuç, kesirli kısmı atılan - yuvarlanmamış bir tam sayıdır. Şunlar. Bölmenin sonucu 6.23411 veya 6.94 ise, sonuç sadece bir tamsayı olacaktır. 131.9739 / 6.18 kesirli kısmını atmadan bir kayan noktalı sayı, 21.355 */ x % y// tamsayı bölümünden sonra kalanı hesaplayacaktır. Örnekler:

x< y // X меньше Y
x > y // daha fazla
x<= y // меньше или равно
x >= y // büyük veya eşittir
x == y // eşittir
x != y /* eşit değil Bu ifadelerin sonucu: "doğru", "1" (daha doğrusu "sıfır değil"), "yanlış", "0"dır. Değişkenlerde saklanan değerler (kayıtlarda)
x
ve de değiştirme. Değişkenlerde depolanan (veya içerdiği) değerler alınır (okunur) ve karşılaştırılır */

1.2.5.Mantıksal işlemler:

|| // "VEYA" - yalnızca "yanlış" ve "yanlış"

// "yanlış" ver

&& // "VE" - yalnızca "doğru" ve "doğru"
// "doğru" ver

! // "NOT" - mantıksal olumsuzlama

Mantıksal işlemin sonucu SAYI DEĞİL, mantıksal değer "doğru" veya "yanlış"tır.

Mantıksal işlemler için && ve || ifadelerin sonuçları işlemin işaretinin soluna ve sağına alınır "doğru" veya "yanlış"a dönüştürülür ve işlemin mantıksal sonucu belirlenir.

Derleyici "true" sonucunu 0'dan başka bir sayıya değil 1'e çevirir.

Mantıksal işlemler, kontrol edilecek birkaç koşulu birleştirebilir.

Örneğin:

Eğer((ifade1)&&((ifade2)||(ifade3)))
{ /* Buradaki program kodu şu durumlarda çalıştırılacaktır:

İfade1 "Doğru"dur (sıfır değil anlamına gelir) ve 2 ve 3 numaralı ifadelerden en az biri de "Doğru"dur (sıfır değil anlamına gelir).
} ;

1.3. C'de kullanılan yapılar

1.Eğer(){} Başka(); programın bir bölümünü herhangi bir koşulun varlığında veya yokluğunda yürütmeniz gerekiyorsa ideal yapı:

} Başka( yapının gerekli bir unsuru değil, onsuz yapı şöyle görünür:

Eğer (ifade) ( C kodu /* varsa bu kodu yapın ifade"gerçek" - yani. hesaplamasının sonucu sıfır değil */
};

Eğer(PINB.5) (C kodunu yürütün);
/* Eğer PB5 ayağında bir "1" var ("0" değil, "doğru" anlamına gelir), ardından program kodu yürütecek ve eğer "0" ("yanlış" anlamına gelir) içeriyorsa, bunu yapmaz, sadece bir sonraki satıra gider */

2. süre()(); koşullu döngü (koşullu döngü) - yürütülürken bazı program kodlarını çalıştırmanız gerekirse kullanılır (vardır,
"doğru", "sıfır değil") bir koşul, ifadenin değerlendirilmesinin sonucu anlamına gelir:

sırasında ( ifade ) (C kodu /* ifade "true" ise - yani hesaplamanın sonucu sıfır değilse bu kodu yürütün. Bu kod yürütülürken ifadenin doğruluğu kontrol edilmez. Kod yürütüldükten sonra, çizgi sırasında ifadenin doğruluğunu tekrar kontrol edin */
};

Örneğin:

sırasında(PINA.6) (C kodunu yürütün);
/* Hoşçakal PA6'nın ayağında bir "1" var ("0", "doğru" anlamına gelmez) o zaman program kodu yürütür ve tekrar PA6'da olup olmadığını kontrol eder */ bit_6 "0" olursa, program ( ) içindekileri yapmadan daha ileri git

Döngü sırasında bir seçeneği var

Yaparken

( ) içindeki kodun en azından yürütüldüğü yer koşulun doğru olup olmadığına bakılmaksızın bir kez parantez içinde:

do(C kodu /* bu kodu bir kez yürütün, ardından ifade "doğru" ise - yani değerlendirmesinin sonucu sıfır değilse - kodu yeniden baştan yürütün ve bu, ifade doğru olana kadar */ ) iken ( ifade); for(;;) ve while() döngüleri genellikle şu şekilde kullanılır: while(1); için(;;); /* Yani bu döngüler yazıldığında şu anlama gelir: MK, güç varken, reset yokken ve kesinti yokken bu satırı yürütür. Bir kesme oluştuğunda, program kesme işleyicisine atlar ve (işleyicide programda başka bir yere geçiş yoksa) işleyici kodunun tamamlanmasıyla tekrar bu döngüye döner. */ while(1)( program kodu ); için (;;)( program kodu ); 4.for(;;)(); - bu döngü, programın bir bölümünü gerekli sayıda çalıştırmanıza izin verir:

karakter Bence; /* için değişken bildirimi için bu normal bir C değişkenidir ve bu nedenle istediğiniz herhangi bir geçerli ad ve türe sahip olabilir */

için(i=5; ben<20; i+=4) {
C'deki kod /* Önce "true" veya "false" kontrol ifadesi belirlenecek<20. Так как переменной i присвоено значение 5 то контрольное выражение "истинно" и код цикла için ilk kez i=5 için yürütülecek, ardından i+=4 ifadesi ile i 9 olacak, şimdi i kontrol ifadesinin doğruluğu (doğruluk, yürütme) tekrar kontrol edilecek<20 и так как 9<20 код цикла için tekrar yürütülecek ancak i=9 için. Bu, kontrol ifadesi değerlendirmesinin sonucu "true" değerini verdiği sürece gerçekleşecektir. Sonuç "yanlış" olduğunda - program döngüden çıkar için kodu çalıştırmadan. */
};

i = 5 ilk ifadedir, başlangıçta değişkende ne olacak Bence. 5 rakamı sadece bir örnektir, değişken tipinin beyanı ne olursa olsun izin verir. Bence, bizim durumumuzda karakterçoğu derleyicide, varsayılan olarak, bu işaretsiz bir karakter türüdür - 0'dan 255'e kadar sayıları saklayabilir

Bence< 20 - контрольное выражение. Может быть с разными операторами отношения, sadece önemli böylece döngü sırasında bazen "yanlış" olur - aksi takdirde döngü "döngü" yapar, yani. asla bitmeyecek.

i += 4, döngü değişkeninin sayacı veya değişikliğidir. Genellikle bu ben++şunlar. Döngünün her "çalışında" değişkene 1 eklenir. Ama yine, ne istersen olabilir.

Başlangıç ​​koşulu- bir tamsayı olarak değerlendirilen C'de geçerli herhangi bir ifade olabilir.

Kontrol ifadesi- döngünün ne kadar süreyle yürütüleceğini belirler.

Tezgah- yeni bir döngünün her yürütülmesinden önce ilk ifadenin nasıl değiştiğini gösterir.

İfade- sadece bir değişken değil, diğer değişkenlerin bir fonksiyonu olabilir, örneğin:

i =(7 + i*4) veya i = (diğer değişkenlerin işlevi).

5. değiştirmek()(); - çoktan seçmeli operatör, birkaç seçenek arasından seçim yapmanızı sağlar.

Parantez içindeki switch anahtar sözcüğünü izleyen ifade, değeri bir tamsayı olması gereken C dilinde izin verilen herhangi bir ifade olabilir. Bu ifadenin değeri, birden çok seçenek arasından seçim yapmanın anahtarıdır. Bir switch ifadesinin gövdesi, büyük/küçük harf anahtar kelimesiyle ve ardından bir sabit ifadeyle işaretlenmiş birkaç ifadeden oluşur. Bir switch deyimindeki tüm sabit ifadeler benzersiz olmalıdır. Case anahtar sözcüğüyle işaretlenmiş ifadelere ek olarak, varsayılan anahtar sözcükle işaretlenmiş bir parça olabilir, ancak her zaman bir tane. Operatör listesi boş olabilir veya bir veya daha fazla operatör içerebilir. Ayrıca, switch deyiminde, deyimlerin sırasını kaşlı ayraçlar içine almak gerekli değildir.

Switch ifadesinin yürütme şeması aşağıdaki gibidir:

Parantez içindeki ifade değerlendirilir;

Hesaplanan değerler, case anahtar kelimelerini takip eden sabit ifadelerle sıralı olarak karşılaştırılır;

Sabit ifadelerden biri ifadenin değeriyle eşleşirse, kontrol, karşılık gelen case anahtar kelimesiyle işaretlenmiş ifadeye aktarılır;

Sabit ifadelerden hiçbiri ifadeye eşit değilse, kontrol varsayılan anahtar kelime ile işaretlenmiş ifadeye, yoksa, kontrol, switch ifadesini izleyen ifadeye aktarılır.

Başlangıç ​​ifadesi ile gövdenin sonu arasındaki tüm ifadeler, ifadelerden biri switch ifadesinin gövdesinden kontrolü aktarmadıkça, anahtar kelimelerden bağımsız olarak yürütülür. Bu nedenle, programcı gerekirse kasadan çıkmaya özen göstermelidir. Bunu yapmanın en yaygın yolu break deyimini kullanmaktır.

değiştirmek(ifade) (

durum 5: C kodu
/* ifade hesaplamasının sonucu bu operatörün çalışmasındaki 5 sayısına eşitse bu kod çalıştırılacaktır değiştirmek biter */
kırmak;

vaka-32: C kodu
/* ifade negatif bir sayı -32 olarak değerlendirilirse bu kod çalıştırılacaktır. Bu operatörün işidir. değiştirmek biter */
kırmak;

durum "G": C kodu
/* ifadenin değerlendirilmesi sonucu ASCII tablosundaki G karakterine karşılık gelen sayıya eşit ise bu kod çalıştırılacaktır.Bu operatörün işidir değiştirmek biter */
kırmak;

varsayılan: C kodu
/* ifadenin değerlendirilmesinin sonucu ne 5, ne -32 ne de "G" ise ve ayrıca kodun yürütülmesinden sonra da bu kod yürütülecektir.
sonunda bir mola vermek;

Bu operatörün işidir. değiştirmek biter */
};

/* değiştirmek bitti - daha fazla program kodu yürütülür */

dava- programı daha hızlı çalıştırmak için gerektiği kadar olabilir - en olası seçenekler daha yükseğe yerleştirilmelidir.

varsayılan- gerekli değil. Yerleştirilebilir ve sonunda değil.

kırmak;- kullanmazsanız, istenen seçeneği bulduktan sonra program aşağıdaki koşulları da yerine getirecektir. dava.

6.git- koşulsuz (anında) geçiş operatörü.

Goto ifadesi, kontrolü etiket-adı etiketli ifadeye aktarır. Etiketli ifade, goto ifadesiyle aynı işlevde olmalı ve kullanılan etiket benzersiz olmalıdır, yani. aynı etiket adı farklı program ifadeleri için kullanılamaz. Etiket-adı bir tanımlayıcıdır. C programımızın bazı kodları... mesto_5:/* program satırını çalıştırdıktan sonra buraya geleceğiz goto mesto_5 */ kod goto mesto_5'ten sonra çalıştırılacak; ... C programımızın bazı kodları... mesto_1:/* program satırını çalıştırdıktan sonra buraya geleceğiz goto mesto_1 */ kod, goto mesto_1'dan sonra çalıştırılacak; ... C programımızın bazı kodları... goto mesto_1;/* programda satırın başında mesto_1 yazan yere gidin: */ ... C programımızın bazı kodları... goto mesto_5; /* programda satırın başında mesto_5 yazan yere git: */ ... C programımızın bazı kodları.

Örnek C Programı

/*paragraf 1 program başlığı

Yorum olarak biçimlendirilir ve genellikle bilgi içerir.

Programın adı, amacı, sürümü ve yazarı hakkında
- program algoritmasının kısa bir açıklaması
- MK'nin sonuçlarının amacı ve çalışma şekli, sigortalar hakkında açıklamalar
- derleyici, araçlar ve sürümleri
- belirtmek için yararlı olduğunu düşündüğünüz diğer bilgiler

// 2. nokta harici dosyalar dahil

#Dahil etmek

/* derlemeden önce, derleyici ön işlemcisi bu satır yerine içeriği (metni) ekleyecektir. başlık dosyası"hidera" mega16.h - bu dosya, ATmega16 MK'de bulunan kayıtların bir listesini ve adlarının MK'deki fiziksel adreslerine karşılık geldiğini içerir. Derleyicideki proje özelliklerinde hangi MK'yi kullandığınızı belirtmelisiniz */

#Dahil etmek
/* derlemeden önce, derleyici önişlemcisi bu satır yerine "başlık" metnini ekleyecektir delay.h - bu dosya programda duraklamalar oluşturmak için işlevler içerir. Şimdi duraklatmak için tek yapmanız gereken yazmak: */

/* N (sayı) mikro saniye duraklat. Sabit olmalı - değişken DEĞİL!!!
Örneğin:

gecikme_us(12 + 7*3);
gecikme_us(117);

gecikme_ms(x); /* x misec duraklat
x - bir değişken, ifade veya sayı olabilir
0 ila 65535 (tip imzasız int)
Örneğin:

gecikme_ms(3280);
gecikme_ms(değişken);
delay_ms(değişken*4 + 760); */

//3. nokta kullanıcı tanımları

#tanımlamak ADC_BUSY PINB.0
#tanımlamak NCONVST PORTB.1
/* bu iki satırdan sonra, derlemeden önce, derleyici önişlemcisi program metninde ADC_BUSY'yi PINB.0 ve NCONVST'yi PORTB.1 ile değiştirecektir.
Böylece AD7896 meşgul pininin PB0 pininize bağlı olduğunu hatırlamak yerine, ADC_BUSY - "ADC meşgul" anlamlı kavramının değerini kontrol edebilirsiniz. Ve soyut pin PB1'i (PORTB.1 aracılığıyla) kontrol etmek yerine - NCONVST - "yeni AD dönüştürmeyi başlat"ı kontrol edebilirsiniz.

#define - Kullanışlı! Ancak AT ALL gerekli değildir.
*/

Örneğin:

#tanımlamak invbit(p,n) (p=p^bit(n))

Burada değişkenler "p" ve "n" dir. Şimdi kayıttaki bit 5'i ters çevirmek için PORTB programa yazman yeterli

davet( PORTB,5);

Ayrıca en sağ kısımda bu değişkenler aritmetik işlemlerle ilişkilendirilebilir ve bu tür birçok değişken olabilir.

algoritma

Herhangi bir programın geliştirilmesi, bir algoritmanın geliştirilmesiyle başlar. Bizim durumumuzda, algoritma şu şekildedir: İlk kurulum işlemlerinden sonra, mikrodenetleyici sürekli bir döngüye girmelidir, bu sırada düğmemize bağlı girişi sorgulaması ve durumuna bağlı olarak LED'leri kontrol etmesi gerekir. Daha ayrıntılı olarak açıklayalım.

C programı

Bir C programı oluştururken, AVR derleyicisi için C PRO kullanıyoruz. Bu yazılım ortamı, AVR mikro denetleyicileri için C programları geliştirmek için özel olarak tasarlanmıştır.

Herhangi bir modern programlama ortamı, yalnızca programın metniyle değil, aynı zamanda sözde proje.

Programcının görevi, yalnızca projede “c” uzantılı ayrı bir dosyanın tahsis edildiği programın metnini yazmaktır. Derleyici, kaynak programı mikrodenetleyicinin belleğine girmek (ürün yazılımı) için onaltılık bir sisteme çevirir (bir Hex dosyası oluşturur).

Gelecekte, kurulum sürecini ayrıntılı olarak ele alacağız ve AVR yazılım ortamı için C PRO ile çalışacağız. Şimdi kurulduğunu ve başlatıldığını düşünüyoruz.

Derleyiciyi başlattıktan hemen sonra, tüm parametreler varsayılan değerlerine döner (tüm dahili cihazlar kapatılır, dahili G / Ç portları girişe ayarlanır, saat frekansı 4 MHz olan dahili bir osilatör kullanılır). sistem sıfırlandıktan sonra mikroişlemcinin ilk durumu. Henüz dokunmamız gerekmeyen parametrelere dokunmayacağız (bunları varsayılan olarak bırakacağız).

C programı şöyle görünür:

1 #Dahil< Atmega 128.h >

2 Bit eski durum ; // eski eyalet bayrağı

3 Void main() (

4 DDB0 bit=0 ; // PB0 pinini giriş olarak ayarla

5 DDRC = 0xFF; // PC'yi çıktı olarak yapılandır

6 PORTC=0xAA; // kaynak kod C portuna yazılır

9 If (Buton (& PINB,0,1,1)) ( // mantıksal olanı algıla

10 Eski Durum=1; // bayrağı güncelle

11 if (eski durum && Düğmesi (& PINB, 0,1,0)) ( // 1'den 0'a geçişi algıla

12 PORTB= ~ PORTB; //PORTC'yi ters çevir

13 eski durum=0; // bayrağı güncelle

14) Süre(1); // sonsuz döngü

Cihazın blok şeması Ek A'da sunulmuştur.

Bu mikroişlemci sistemi şu bloklardan oluşur: mikroişlemci, RAM, ROM, programlanabilir paralel arabirim, analogdan dijitale dönüştürücü, zamanlayıcı, ekran.

Sensörlerden gelen analog sinyaller, her zaman aralığında sinyallerden birini analogdan dijitale dönüştürücünün girişine geçiren ADC'ye yerleşik analog çoklayıcının girişlerine beslenir.

Bir analog sinyali, mikroişlemcinin birlikte çalıştığı dijital bir koda dönüştürmek için bir analogdan dijitale dönüştürücü kullanılır.

Mikroişlemci, programlanabilir bir paralel arabirim aracılığıyla ADC'ye erişir. ADC'nin çıkışlarından bilgileri okur, bir RAM bellek hücresine girer. Ayrıca istasyonun çıkışındaki yağ basınç sensöründen alınan bilgilere göre MP, kontrol eylemini hesaplar. Bu değer aktüatöre dijital kod şeklinde iletilir.

RAM, sensörlerden alınan bilgilerin ve mikroişlemci hesaplamalarının ara sonuçlarının geçici olarak depolanmasına hizmet eder.

Sistem yazılımı ROM'da (Salt Okunur Bellek) saklanır. Okuma işlemi bir mikroişlemci tarafından kontrol edilir.

ROM'da saklanan program aşağıdaki sistem işlemlerini sağlar:

Sensörlerin sıralı yoklaması;

Bir analog sinyalin analogdan dijitale dönüşümünün kontrolü;

Yağ basıncı regülasyonu;

Gösterge ve alarm;

Güç kaybına tepki.

Sistem algoritması geliştirme

Algoritmanın blok diyagramı Ek B'de sunulmuştur.

başlatma

Bu aşamada kontrol kelimeleri programlanabilir paralel arayüzün RSS'sine yazılır. PPI DD10 sıfır modunda çalışır. Bağlantı noktaları şu şekilde çalışır: bağlantı noktası A - giriş, bağlantı noktası B - çıkış, bağlantı noktası C - çıkış. PPI DD1, sıfır modunda çalışır. Bağlantı noktaları şu şekilde çalışır: bağlantı noktası A - çıkış, bağlantı noktası B - çıkış, bağlantı noktası C - çıkış.

Yoklama sensörleri

Analog sensörler ADC tarafından sorgulanır. Bağlantı noktası A PPI 1 aracılığıyla ayrı sensörler, mikroişlemci tarafından sorgulanır.

RAM'e kaydet

Sensörlerin yoklanmasından sonra elde edilen sonuçlar, geçici depolama için rastgele erişimli bir belleğe girilir.

Kontrol eylemi

Mikroişlemci sistemi, alınan verileri analiz eder ve bir dijital kontrol eylemi oluşturur.

Konsept geliştirme

Cihazın şematik diyagramı Ek D'de sunulmuştur.

Adres yolu, bir arabellek kaydı ve bir veri yolu sürücüsü kullanılarak oluşturulur. Kayıt seçimi, mikroişlemcinin ALE sinyali tarafından yapılır. Adresin yüksek baytının yük kapasitesini artırmak için veri yolu sürücüsüne ihtiyaç vardır.

Veri yolu, DT/R ve OE sinyalleri uygulanarak seçilen bir veri yolu sürücüsü kullanılarak oluşturulur.

Sistem veriyolu, M / IO, WR, RD sinyallerinin bir kombinasyonu uygulanarak DD10 kod çözücü aracılığıyla oluşturulur.

Tablo 1 - Kontrol sinyalleri

ROM, RAM ve diğer cihazların seçimi, kod çözücü üzerinden adres veriyolunun A13-A15 hatları kullanılarak gerçekleşir. ROM hücreleri 0000h adresinden bulunur.

Tablo 2 - Cihaz seçimi

Cihaz

PPI kontrol kelimesinin port veya kaydının seçimi, adres veriyolunun A0, A1 hatları üzerinden gerçekleştirilir. A bağlantı noktası PA0-PA7 PPI DD12 girişlerine ayrı sensörler sağlanır; B bağlantı noktasının girişlerine - ADC ile; LED'ler C portunun girişlerine bağlanır.

Analog çoklayıcı, bilgilerin okunacağı cihazı seçmek için kullanılır. Analog çoklayıcı, ADC'ye yerleştirilmiştir. ADC'nin bit genişliği, veri yolunun bit genişliği ile çakışır ve 8 bittir.

Dirençler R2-R4, 4 ... 20 mA'lık bir birleşik akım sinyalini 1 ... 5V'luk bir gerilime dönüştürmek için kullanılır.

Mikroişlemci sistemleri tasarlama aşamaları

Mikroişlemci sistemleri, karmaşıklıklarında, gereksinimlerinde ve işlevlerinde, güvenilirlik parametrelerinde, yazılım miktarında, tek işlemcili ve çok işlemcili, bir tür mikroişlemci seti veya birkaçı üzerine inşa edilmiş vb. Bu bağlamda, sistem gereksinimlerine bağlı olarak tasarım süreci değiştirilebilir. Örneğin, ROM içeriğinde birbirinden farklılık gösteren MPS tasarlama süreci, programların geliştirilmesi ve ROM'un üretilmesinden oluşacaktır.

Birkaç tür mikroişlemci seti içeren çok işlemcili mikroişlemci sistemleri tasarlarken, bellek düzenleme, işlemcilerle etkileşim, sistem cihazları ve dış ortam arasındaki alışverişi düzenleme, farklı çalışma hızlarına sahip cihazların işleyişini koordine etme vb. Sorunları çözmek gerekir. Aşağıda bir mikroişlemci sistemi oluşturmak için tipik olan yaklaşık bir aşama dizisidir:
1. Sistem gereksinimlerinin resmileştirilmesi.
2. Sistem yapısının ve mimarisinin geliştirilmesi.
3. Sisteme ait donanım ve yazılımların tasarımı ve imalatı.
4. Kapsamlı hata ayıklama ve kabul testi.

Aşama 1. Bu aşamada, harici özellikler derlenir, sistem işlevleri listelenir, sistem için görev tanımları (TOR) resmileştirilir ve geliştiricinin niyetleri resmi belgelerde resmi olarak belirtilir.

Aşama 2. Bu aşamada, bireysel cihazların ve yazılımların işlevleri belirlenir, sistemin uygulanacağı mikroişlemci setleri seçilir, donanım ve yazılım arasındaki etkileşim ve bireysel cihaz ve programların zamansal özellikleri belirlenir. .

Aşama 3. Devre tasarımcıları ve programcılar, donanım tarafından gerçekleştirilen işlevler ve programlar tarafından gerçekleştirilen işlevler belirlendikten sonra eş zamanlı olarak sırasıyla bir prototip ve yazılım geliştirmeye ve üretmeye başlarlar. Ekipmanın geliştirilmesi ve üretimi, yapısal ve devre şemalarının geliştirilmesinden, bir prototipin üretilmesinden ve çevrimdışı hata ayıklamadan oluşur.
Yazılım geliştirme, algoritmalar geliştirmekten oluşur; kaynak programların metninin yazılması; kaynak programların nesne programlarına çevrilmesi; çevrimdışı hata ayıklama.

Adım 4. Bkz. Karmaşık Hata Ayıklama.

MPS tasarımının her aşamasında insanlar hatalara neden olabilir ve hatalı tasarım kararları verebilirler. Ek olarak, ekipmanda kusurlar meydana gelebilir.

Hata kaynakları

Tasarımın ilk üç aşamasındaki hata kaynaklarını göz önünde bulundurun.

Aşama 1. Bu aşamada, hata kaynakları şunlar olabilir: gereksinimlerin mantıksal tutarsızlığı, ihmaller, algoritmanın yanlışlıkları.

Aşama 2. Bu aşamada hata kaynakları şunlar olabilir: fonksiyon eksiklikleri, donanım ve yazılım etkileşim protokolünün tutarsızlığı, yanlış mikroişlemci setleri seçimi, algoritma yanlışlıklar, teknik gereksinimlerin yanlış yorumlanması, bazı bilgi akışlarının ihmal edilmesi.

Aşama 3. Bu aşamada, hataların kaynakları şunlar olabilir: ekipmanın geliştirilmesinde - bazı işlevlerin ihmal edilmesi, teknik gereksinimlerin yanlış yorumlanması, senkronizasyon şemalarındaki kusurlar, tasarım kurallarının ihlali; prototip imalatında - bileşenlerin arızaları, kurulum ve montaj arızaları; yazılım geliştirirken - teknik özelliklerin bazı işlevlerinin ihmalleri, algoritmalardaki yanlışlıklar, kodlamadaki yanlışlıklar.

Listelenen hata kaynaklarının her biri, yerelleştirilmesi ve ortadan kaldırılması gereken çok sayıda öznel veya fiziksel hata üretebilir. Hata tespiti ve arıza yeri tespiti birkaç nedenden dolayı zor bir iştir: birincisi, çok sayıda arıza nedeniyle; ikincisi, çeşitli kusurların kendilerini aynı şekilde gösterebilmesi nedeniyle. Sübjektif hata modelleri olmadığından, bu görev resmileştirilmemiştir. Hataları tespit etmek ve fiziksel arızaları lokalize etmek için yöntemler ve araçlar oluşturma alanında belirli başarılar vardır. Bu yöntemler ve araçlar, ayrı sistemlerdeki çalışabilir durumu kontrol etmek ve ikincisinin tasarımı, üretimi ve işletimi sırasında arızaları teşhis etmek için yaygın olarak kullanılmaktadır.

Subjektif arızalar, tespit, lokalizasyon ve düzeltmeden sonra artık meydana gelmemeleri bakımından fiziksel arızalardan farklıdır. Bununla birlikte, hata kaynakları listesinin önerdiği gibi, sistem spesifikasyonu geliştirme aşamasında subjektif arızalar ortaya çıkabilir, bu da sistemin harici spesifikasyonlarına karşı kapsamlı bir şekilde test edilmesinden sonra bile, sistemde subjektif arızaların hala mevcut olabileceği anlamına gelir.

Tasarım süreci yinelemeli bir süreçtir. Kabul testi aşamasında keşfedilen hatalar, spesifikasyonların düzeltilmesine ve sonuç olarak tüm sistemin tasarımının başlamasına yol açabilir. Arızaları mümkün olduğunca erken tespit etmek gerekir, bunun için geliştirmenin her aşamasında projenin doğruluğunu kontrol etmek gerekir.

Tasarım Doğrulama

Tasarımın doğruluğunu kontrol etmenin ana yöntemleri şunlardır: doğrulama - projenin doğruluğunu kanıtlamak için resmi yöntemler; modelleme; test yapmak.

Yazılım, mikro program, donanım doğrulaması konusunda birçok çalışma bulunmaktadır. Ancak bu çalışmalar teorik niteliktedir. Uygulamada, nesne davranışı modellemesi ve testi hala kullanılmaktadır.

Her tasarım aşamasında projenin doğruluğunu kontrol etmek için, sistemin soyut temsilinin çeşitli seviyelerinde modelleme yapmak ve verilen modelin uygulanmasının doğruluğunu test ederek doğrulamak gerekir. Gereksinimlerin resmileştirilmesi aşamasında, birçok tasarım hedefi resmileştirilmediğinden veya prensipte resmileştirilemediğinden doğruluk kontrolü özellikle gereklidir. İşlevsel belirtim, bir uzmanlar ekibi tarafından gözden geçirilebilir veya istenen hedeflere ulaşılıp ulaşılmadığını belirlemek için deneysel olarak modellenip test edilebilir. Fonksiyonel spesifikasyonun onaylanmasından sonra, sistemin fonksiyonel spesifikasyonuna uygun olarak doğru çalışmasını sağlamak için tasarlanmış fonksiyonel test programlarının geliştirilmesi başlar. İdeal olarak, tamamen bu spesifikasyona dayanan ve spesifikasyonda belirtilen işlevleri yerine getirebileceği iddia edilen sistemin herhangi bir uygulamasının test edilmesine izin veren testler geliştirilir. Bu yöntem, testlerin belirli uygulamalara göre oluşturulduğu diğerlerinin tam tersidir. Uygulamadan bağımsız işlevsel doğrulama, genellikle yalnızca teoride caziptir, ancak yüksek derecede genellik nedeniyle pratik değeri yoktur.

Sıkıcı test programları yazma işini otomatikleştirmek, test programlarını tasarım aşamasında alarak (sistem gereksinimleri oluşturulduktan hemen sonra oluşturulabildikleri için) yalnızca oluşturma/hata ayıklama süresini kısaltmakla kalmaz, aynı zamanda tasarımcının özellikleri değiştirmesine izin verir. tüm test programlarını yeniden yazma konusunda endişelenmeyin. Ancak uygulamada, test geliştirmeye genellikle projeden daha düşük bir öncelik verilir, bu nedenle test programları projenin tamamlanmasından çok daha sonra ortaya çıkar. Ancak ayrıntılı testler hazırlansa bile, bunları bir simülatörde çalıştırmak çoğu zaman pratik değildir, çünkü ayrıntılı modelleme çok fazla geliştirme parası ve hesaplama süresi gerektirir ve sonuç olarak, hata ayıklama çalışmalarının çoğu bir sistemin oluşturulmasına kadar ertelenmelidir. prototip.

Bir hata tespit edildiğinde, sistem soyutlamasının uygun seviyesinde ve uygun yerde onu düzeltmek için kaynağının bulunması gerekir. Bir hatanın kaynağının yanlış belirlenmesi veya sistemin soyut temsilinin başka bir seviyesinde düzeltmeler yapılması, sistem hakkında üst seviyelerdeki bilgilerin hatalı hale gelmesine ve sistemin üretimi ve işletimi sırasında daha fazla hata ayıklama için kullanılamamasına neden olur. . Örneğin, montaj dilinde yazılmış bir programın kaynak koduna bir hata girilirse ve nesne kodunda düzeltme yapılırsa, programın daha fazla hata ayıklaması nesne kodunda gerçekleştirilir; aynı zamanda, Assembly dilinde bir program yazmanın tüm avantajları hiçbir şeye indirgenmez.

Teknik ekipmanın otomasyon süreçleri, tüm üretim organizasyonunun büyük bir bölümünü ele geçirdi. Takım tezgahlarında, makine ve mekanizmalarda, robotik komplekslerde her yerde kullanılırlar. Yeni teknolojiler, işgücü verimliliğini önemli ölçüde artırarak, insan faktörünün üretimdeki riskler üzerindeki etkisini azaltmaktadır. Ürünlerin teknik seviyesi ve kalitesi de iyileştirildi. Mikroişlemci sistemleri - bir zamanlar yenilikçi bir teknolojiydi. Ancak artık bu artık olağan hale geldi, çünkü mikroişlemciler kullanılarak yapılan cihazlar, ayrı mantık devreleri üzerinde yapılan cihazlara kıyasla daha yüksek performansa sahip ve birincisinin ekonomik faydası var.

Geliştirme sürecinin standardizasyonu, bu alandaki analiz ve araştırmayı basitleştirir. Aynı zamanda mevcut durumu ve olası sonucu netleştirir. Günümüzün gömülü mikroişlemci şirketleri, hızlı ve organize tasarım için sahada programlanabilir mantık tümleşik devreleri (FPGA'lar) ve bilgisayar destekli üretim sistemlerini kullanır. FPGA'ların yardımıyla gerçek zamanlı hata ayıklama ve test etme de mümkündür. Yıllık CAD güncellemesi, bariz hatalardan kaçınırken monoton ve tek heceli çalışmalara daha az zaman harcamanıza olanak tanır. Bu, sistemin daha yüksek seviyelerine soyutlama yapmanızı ve zor problemleri çözmenizi sağlar.

Gömülü mikroişlemci sistemleri geliştirme süreci, birbirini izleyen tasarım aşamalarının iki yolu olarak temsil edilebilir. İlk yol, gömülü bir mikroişlemci sisteminin donanımının geliştirilmesidir. İkinci yol ise yazılım tasarımıdır (Şekil 1).

Şekil 1. Tasarım aşamaları

Ancak rotanın tüm aşamaları gerekli değildir. Geliştirme sırasında sistemin donanımının modellenmesi yapılamaz. Bu nedenle, bazı adımlar hariç tutulabilir: modelleme spesifikasyonunun hazırlanması, modellerin oluşturulması, fonksiyonel ve zamansal modelleme. Aynı zamanda, sistemin donanımının modellenmesinin, olası hataların erken tespiti ve ortadan kaldırılması nedeniyle bir bütün olarak tasarım sürecinin verimliliğini arttırdığı dikkate alınmalıdır.

Mikroişlemci sistemleri için tipik tasarım adımları şunları içerir:

  1. Çeşitli sistem gereksinimlerinin resmileştirilmesi. Sistem için harici spesifikasyonlar, referans şartları (TOR), geliştirici tarafından sistem görüntüsünün dokümantasyondaki notları, sistemin işlevlerini listelemek gerekir.
  2. Sistem elemanlarının yapısının ve mimarisinin geliştirilmesi. Donanım ve yazılım arasındaki etkileşimi, çevre birimlerinin ve yazılım kabuklarının işlevlerini belirlemek, sistemin uygulanacağı mikroişlemci çözümlerini seçmek, zaman özelliklerini belirlemek gerekir.
  3. Sistemin donanım ve yazılımının geliştirilmesi ve üretimi. Temel çalışma modları koşullarında yapı ve devre şemalarını geliştirmek, prototip yapmak ve hata ayıklamak gerekir. Yazılım geliştirme, algoritmalar, kaynak kodu yazma, kaynak programları nesne programlarına çevirme, yazılım hata ayıklama ve simülasyondan oluşmalıdır.
  4. Çalışma koşullarında genel hata ayıklama ve kabul testleri.

İnsan faktörü, arızalara ve kötü tasarım kararlarına izin verir. Cihazlarda donanımsal hatalar da var. Örneğin, aşamalar halinde aşağıdaki hata kaynakları mümkündür:

Aşama 1. Gereksinimlerin mantıksal tutarsızlığı, eksiklikler, algoritmanın yanlışlıkları.

Aşama 2. İşlevlerin ihmal edilmesi, bazı bilgi akışlarının ihmal edilmesi, donanım ve yazılımın etkileşimi için protokolün tutarsızlığı, teknik gereksinimlerin yanlış tanımlanması, yanlış mikroişlemci çözümlerinin seçimi, algoritmaların yanlışlıkları.

Aşama 3. Ekipman geliştirirken - bazı işlevlerin ihmali, referans şartlarının yanlış yorumlanması, senkronizasyon şemalarındaki kusurlar, tasarım kurallarının ihlali; yazılım geliştirirken - referans şartlarının bazı işlevlerinin ihmali, algoritmalardaki yanlışlıklar, kodlamadaki yanlışlıklar; prototip imalatında - bileşenlerin ve çevre birimlerinin arızaları, kurulum ve montaj arızaları.

Listelenen hata kaynaklarının her biri, daha fazla tanımlanması ve ortadan kaldırılması gereken çok sayıda fiziksel veya öznel hataya yol açabilir. Bir arızanın tespiti ve lokalizasyonu birkaç nedenden dolayı karmaşıktır: ilk olarak, arızalar nedeniyle birkaç tane olabilir; ikincisi, çeşitli problemlerin semptomlarının tekdüzeliği. Sübjektif hata modelleri olmadığından, bu görev resmileştirilmemiştir. Uzman sistemlerin yardımıyla çözmek mümkündür - mevcut problemlere sahip bir veritabanı ve pratik deneyime dayalı çözümleri.

Subjektif arızalar, tespit, lokalizasyon ve düzeltmeden sonra artık meydana gelmemeleri bakımından fiziksel arızalardan farklıdır. Ancak sistem spesifikasyonu geliştirme aşamasında sübjektif hatalar ortaya çıkabilir, bu da sistem spesifikasyonlarına karşı kapsamlı bir şekilde test edildikten sonra bile sistemde sübjektif arızalar olabileceği anlamına gelir.

Tasarım süreci yinelemeli bir süreçtir, yani bir aşamada hatalar tamamen ortadan kaldırılmazsa, bir sonraki aşamada görünebilirler. Arızaları mümkün olduğunca erken tespit etmek gerekir, bunun için geliştirmenin her aşamasında projenin doğruluğunu kontrol etmek gerekir. Örneğin, projenin kabulü ve tesliminin son aşamasında keşfedilen hatalar, şartnamelerin düzeltilmesine ve dolayısıyla tüm sistemin tasarımının başlangıcına yol açabilir. Görev tanımındaki değişiklikler (sistem hakkında eksik bildirim ve bilgi eksikliği nedeniyle) aynı sonuçlara yol açar.

Tasarım doğruluğunu kontrol etmenin ana yöntemleri şunlardır: doğrulama, modelleme ve test etme.

Doğrulama, yalnızca mevcut hataları değil, aynı zamanda blokları kullanarak gelecekteki projelerde ortaya çıkabilecek olası hataları da tespit etmenizi sağlar. Ancak ayrı bir teknik görev ve ilgili beceriler gerektirir ve büyük projeler için uygundur. Küçük projelerde, nesne davranışı modellemesi ve testi daha sık kullanılır. bu seçenek uygun maliyetlidir ve çok fazla kaynak gerektirmez.

Doğruluk kontrolü, çeşitli sistem soyutlama seviyelerinde simülasyonlar yapma ve test yoluyla modelin uygulanan kısmının doğruluğunu doğrulama ihtiyacı ile her tasarım aşamasında sağlanır. İşlevsel belirtim, beklenen sonucu belirlemek için deneysel olarak modellenebilir ve test edilebilir. Ayrıca uzman bir ekip tarafından analiz edilebilir. Fonksiyonel spesifikasyonun onaylanmasından sonra, sistemin fonksiyonel spesifikasyonuna uygun olarak doğru çalışmasını sağlamak için tasarlanan sistemin fonksiyonel testlerinin geliştirilmesi başlar. Tamamen bu spesifikasyona dayalı testler geliştirmek en verimli olanıdır, çünkü bu, spesifikasyonda belirtilen işlevleri yerine getirebilen herhangi bir sistem uygulamasını test etmeyi mümkün kılar. Bu yöntem, testlerin belirli uygulamalarla ilişkili olarak oluşturulduğu diğerlerine benzer, ancak beklenti ve geliştirme sonucunu daha doğru bir şekilde karşılaştırır.

Bir hata tespit edildiğinde, sistemin soyut temsilinin uygun seviyesinde ve uygun yerde düzeltilmesi için kaynağının lokalize edilmesi gerekir. Hatanın kaynağının yanlış belirlenmesi veya sistemin soyut temsilinin başka bir seviyesinde ayarlamaların yapılması, sistem hakkında en üst seviyedeki bilgilerin hatalı hale gelmesine ve üretim ve işletim sırasında daha fazla hata ayıklama için kullanılamamasına neden olur. sistem.

Test programları geliştirmenin monoton çalışmasını otomatikleştirmek, testleri daha erken alarak (çünkü bunlar sistem gereksinimleri oluşturulur oluşturulmaz oluşturulabilirler) oluşturma ve hata ayıklama süresini kısaltır ve tasarımcının tüm test programlarını yeniden yazmadan özellikleri değiştirmesine olanak tanır. Uygulamada, testlerin geliştirilmesi projeden daha az önceliğe sahiptir, bu nedenle test programları tamamlanmasından çok daha sonra ortaya çıkar.

Böylece, mikroişlemci tasarımının nüansları göz önüne alındığında, geliştirme sırasında "tuzaklar" kolayca atlanabilir. Programlanabilir mantık tümleşik devrelerinin (FPGA'lar) kullanılması, henüz piyasaya sürülmemiş bir toplu işin hatalarını ayıklamayı kolaylaştırır ve tasarımı test etmenize ve hataları düzeltmenize olanak tanır. Ve bilgisayar destekli üretim (CAD) sistemleri, geliştirmeyi basitleştirerek kaynakları daha rasyonel bir şekilde yeniden tahsis etmenize olanak tanır.

Kaynakça:

  1. SibGUTI [Elektronik kaynak] / Bir FPGA üzerinde bir mikroişlemci tasarlama - Erişim modu: http://ict.sibsutis.ru/sites/csc.sibsutis.ru/files/courses/mps/mp.pdf-free. - kafa. ekrandan. - dilim Rusça (22.12.2017 tarihinde erişildi).
  2. Zotov V. Gömülü Geliştirme Kiti, Xilinx'in FPGA serisi FPGA'larına dayalı gömülü mikroişlemci sistemleri tasarlamak için bir sistemdir. 2004. No. 3.

1. işleyen,tasarım ve mimarimikroişlemci aygıtlarıve sistemler

1.1. yaygınmikroişlemci teknolojisi hakkında bilgi

Temel kavramlar vetanımlarmikroişlemci teknolojisi

Mikroişlemciler ve mikro bilgisayarlar, elektronik endüstrisinin toplu ürünleridir. Mikroişlemci teknolojisinin temelleri bilgisi, özellikle sistem mühendisleri, tasarım mühendisleri, bilgisayar sistemlerinin (CS) süreç mühendisleri olmak üzere herhangi bir profildeki mühendisler için gereklidir.

Mikroişlemciler (MP), modern uçak ve radyo elektronik cihazlarında (REU), teknolojik kontrol sistemlerinde, esnek otomatik ve diğer endüstrilerde yaygın olarak kullanılmaktadır. MP kullanımı, işgücü verimliliğini artırmada olumlu bir etkiye sahiptir, çeşitli amaçlar için ekipmanın kalitesini artırır. MP ve mikrobilgisayarların teknik sistemlerde kullanılması sayesinde, ekipmanın işlevselliği genişlemiş, güvenilirliği ve çalışma kararlılığı artmış ve bilgi işleme kalitesi iyileşmiştir.

Bilgisayar sistemlerinde MP'leri ve mikrobilgisayarları kullanma olasılıkları ve olasılıkları henüz tam olarak açıklanmadı. MP'nin üretim teknolojileri ve mimarisi sürekli olarak geliştirilmektedir. Böylece, modern tek çipli MP'nin bit derinliği 64 bite ulaşır. MP'leri ve mikrobilgisayarları kullanırken geliştiriciler, mimarilerinin ve teknik özelliklerinin yeteneklerini değerlendirebilmeli ve farklı seviyelerde programlama dillerinde yetkin olmalıdır. Assembly dili, sistem yazılımı oluşturmak için yaygın olarak kullanılmaktadır. Programcıların yüksek verimliliğini sağlamak için veri işleme görevleri üst düzey diller (örneğin C) kullanılarak çözülür. Modern mühendisler - bilgisayar teknolojisi uzmanları, hem MP mimarisi hem de elektronik cihazların farklı seviyelerde dillerde programlanması alanında bilgiye ihtiyaç duyarlar.


Mikroişlemci teknolojisinde temel, "mikroişlemci", "IC", "IC", "BIS", "VLSI", "LIS mikroişlemci seti", "mikroişlemci cihazı", "mikroişlemci sistemi", "mikroişlemci" gibi kavramlardır. ekipman”, “mikro bilgisayar” (genel amaçlı ve özel), “gömülü mikro bilgisayar”, “kişisel bilgisayar”, “ev kişisel bilgisayarı”, “profesyonel kişisel bilgisayar”, “mikrodenetleyici” vb.

Ayrıca mikroişlemci teknolojisinde bilgisayar teknolojisi ile ilgili kavramlar ve özellikle “omurga”, “veriyolu”, “arayüz”, “sistem arayüzü”, “çevre arayüzü”, “adaptör”, “protokoller”, “arayüz” ile ilgili kavramlar kullanılmaktadır. satırı" vb.

Mikroişlemci teknolojisindeki yazılımları incelerken, bilgisayar teknolojisindeki yazılımı tanımlama kavramlarıyla, özellikle “algoritma”, “program”, “yazılım” vb.

Mikroişlemci teknolojisinin ana, temel kavramlarından biri "mikroişlemci"dir.

mikroişlemci- o karmaşıkyazılım kontrollü cihaz,dijital bilgileri işlemek için tasarlanmış vebir veya daha fazla integral şeklinde yapılan bu işlemin işlem kontrolüartan entegrasyon derecesinin mikro devreleri (BIC veya SBIİLE).

Entegre devre (IHANIM) elektriksel olarak bağlı elemanların (veya elemanların ve bileşenlerin) ve (veya) kristallerin yüksek bir iç paketleme yoğunluğuna sahip olan ve sinyallerin dönüştürülmesi, işlenmesi ve (veya) bilgi biriktirilmesi gibi belirli bir işlevi yerine getiren ve açısından kabul edilen bir mikro elektronik cihazdır. bir bütün olarak elektronik ürünleri test etme, tedarik ve çalıştırma gereksinimleri.

yarı iletken IC- tüm elemanları ve elemanlar arası bağlantıları yarı iletkenin içinde ve yüzeyinde yapılan entegre bir mikro devre.

Dijital IC- ayrı bir fonksiyon yasasına göre değişen sinyalleri dönüştürmek ve işlemek için tasarlanmış bir entegre devre.

entegrasyon derecesi- içerdiği eleman ve bileşenlerin sayısı ile karakterize edilen IC'nin karmaşıklık derecesinin bir göstergesi. Entegrasyon derecesi formül tarafından belirlenir k= günlük n, nerede k- değerleri en büyük tam sayıya yuvarlanmış entegrasyon derecesini belirleyen katsayı; n- IC'nin eleman ve bileşenlerinin sayısı.

Büyük entegre devre (BIİLE)- bipolar teknoloji kullanılarak üretilmiş 500 veya daha fazla eleman veya MOS teknolojisi kullanılarak üretilmiş 1000 veya daha fazla eleman içeren, ekstra büyük bir entegre devre integralşema (SBIİLE)içerir elemanların üzerinde.

AyarlamakBIS- mimari, tasarım, elektriksel parametrelerde uyumlu çeşitli işlevleri yerine getiren ve mikroişlemci teknolojisinin üretiminde ortak kullanım olasılığını sağlayan bir dizi LSI türü.

mikroişlemci kiti (IPC)- mimari, tasarım ve elektriksel parametrelerde uyumlu ve ortak kullanım imkanı sağlayan bir dizi mikroişlemci ve diğer IC'ler.

Mikroişlemci, her iki elektronik cihazda bulunan (hız, güç tüketimi, boyutlar, ağırlık, güç seviyesi sayısı, güvenilirlik, maliyet, kasa tipi, sıcaklık aralığı vb.) dahili kayıtların sayısı, bir mikro program düzeyi, yığın belleğinin türü, yazılımın bileşimi vb.).


mikroişlemci aygıtı ( MPU) - işlevsel ve yapıcışematik ve yapıcı bir bitmiş ürünbir veya daha fazla mikroişlemci dahil olmak üzere birkaç mikro devrenin bağlantısıbirini gerçekleştirmek için tasarlanmış veyaçoklu işlevler: alma, tedavi,bilgi aktarımı, dönüşümü ve yönetimi.

MPU birleşik bağlantı özelliklerine (arayüz, tasarım vb.) sahiptir ve belirli bir teknik sistemin parçası olarak işlev görür.

Mikroişlemci sistemi ( MPS) - o çok sayıdafonksiyonel cihazlardan biribir mikroişlemciye sahip olan.

Mikroişlemci bu sistemin çekirdeğini oluşturur ve bir merkezi kontrol cihazının ve bir aritmetik-mantıksal veri dönüştürme cihazının işlevlerini yerine getirir. Tüm MPS cihazlarının standart bir arayüzü vardır ve tek bir bilgi yoluna bağlıdır.

Mikroişlemci teknolojisi - mikroişlemciler ve bilgi işlem cihazlarıteknoloji (VT) ve otomasyon, bunların temelinde yapılır.

Bunlar bilgisayar teknolojisinin en genel kavramlarıdır. Bugün, neredeyse tüm VT, mikroişlemci cihazları temelinde inşa edilmiştir.

Genel amaçlı mikro bilgisayar - o büyük mikrobilgisayarlarçeşitli işlerin üstesinden gelmek için uyarlanmış operasyonel kaynaklarsayısal ve metinsel veriler ve bilgi işlemde kullanılması amaçlananmerkezler.

Bu, kişisel bilgisayarların temeli olan en yaygın mikrobilgisayar sınıfıdır.

özel bilgisayarlar - o belirli bir uygulamayı gerçekleştirmek için tasarlanmış bilgisayarlarözel algoritma:Fourier dönüşümleri, korelasyon hesaplamalarıfonksiyonlar vediğerleri

Sınırlı sayıda sistem komutuna sahip dar profilli bilgisayarlardır.

yerleşik mikrobilgisayar (mikroişlemci aygıtı) - işleme ünitesiveri veevde kullanılması amaçlanan kontrollerenstrümanlar, proses kontrol sistemleri veyakontrol, bilgisayar çevre birimleri, ofis ekipmanları, vb.

Bu bilgisayarların çoğu ev aletlerinde (TV, radyo, çamaşır makinesi vb.)

Kişisel bilgisayar (kişisel bilgisayar) - diyalog sistemikişisel kullanım için, üzerinde uygulananmikroişlemci tabanlıküçük boyutlu harici depolama anlamına gelircihazlar ve veri kayıt cihazları,üst düzey dillerde geliştirilmiş bir programlama sistemi kullanarak tüm bilgisayar kaynaklarına erişim sağlar.

Bu, bireysel kullanım için tasarlanmış küçük boyutlu ve maliyetli evrensel bir mikro bilgisayardır. Ev kişisel bilgisayarları bir ev bilgi merkezi olarak hareket eder. profesyonel kişiselbilgisayarlar bir uzmanın işyerinde büyük miktarda bilgiyi işlemek için çeşitli işlemleri otomatikleştirmek için tasarlanmıştır.

mikrodenetleyici- işlevleri mantıksal analiz ve kontrol olan bir veya daha fazla çip üzerinde yapılan kontrollü cihaz.

Mikroişlemcilerin sınıflandırılması ve ana parametreleri

LSI sayısı ile tek çipli, çoklu çipli ve çok çipli kesitli MP'ler ayırt edilir.

Tek çipli MP işlemcinin tüm donanımını tek bir LSI veya VLSI biçiminde uygulayın. Tek çipli bir MP, sabit bir bit derinliğine, bir dizi komuta sahiptir ve yapısal olarak tek bir entegre devre (IC) şeklinde yapılır. Yaptığı tüm işlemler, bir dizi MP komutu tarafından belirlenir. Tek çipli bir MP'nin bir özelliği, dahili bilgi verilerini ve kontrol sinyallerini iletmek için dahili bir otoyolun varlığıdır. Bu MP'lerin yetenekleri, kristalin ve paketin donanım kaynakları ile sınırlıdır, ancak kristal entegrasyon derecesi ve paket pimlerinin sayısındaki bir artışla, MP'nin parametreleri sürekli olarak geliştirilir.

V çok güzelsinkristal MP mantıksal yapı, ayrı LSI ve VLSI olarak veya bir VLSI'de ayrı kristaller olarak uygulanan işlevsel olarak tamamlanmış parçalara bölünür.

Çok çipli bölümlenmiş MP bir dizi mikroişlemci bölümünden oluşur.

mikroişlemci bölümü- o mikroişlemci entegreMP'nin bir bölümünü uygulayan ve basit bir işlevsellik araçlarına sahip bir devrederneklerkomple MP, MPU veya mikrobilgisayarlar oluşturmak için aynı tip veya diğer mikroişlemci bölümleriyle.

Kesitli MP'ler bellenim tarafından kontrol edilir. Kesitli MPC'ler, LSI serilerini içerir: K1800, KR1802, KM1804, vb. Ana amaçları, çeşitli kontrol bilgisayar sistemlerinin uygulandığı yüksek performanslı çok bitli MP'ler ve MPC'ler oluşturmaktır.

IPC BIS'in temeli, bir serinin temel IC kümesidir. Sabit bit derinliğine sahip tek çipli bir MP IC'den ve bir dizi komuttan veya bir dizi tek çipli MP LSI'den oluşabilir. MP'nin işlevselliğini genişletmek için, temel MPC LSI, diğer LSI türleri ile desteklenir: RAM, ROM, PROM, arayüz entegre devreleri, harici cihaz kontrolörleri, vb.

İşlenen sinyallerin türüne göre ayırt edilir dijital ve analog MP. Her iki MT türünde de bilgi işleme dijitaldir. Dijital MP'lerde tamamen dijital sinyaller işlenirken, analog MP'lerde analog sinyalleri işlemek için bir analogdan dijitale cihaz (ADC) ve bir dijitalden analoga dönüştürücü (DAC) yerleşiktir. Onlarda, giriş analog sinyalleri ADC aracılığıyla MP'ye iletilir, dijital biçimde işlenir, DAC'de analog biçime dönüştürülür ve çıkış yapılır.

Mikroişlemci kiti seçimi

bilgi işlem cihazlarının tasarımı içinve sistemler

Belirli bir bilgi işlem cihazı veya sistemi için bir IPC seçmek en zor iştir. Bunun nedeni, içlerindeki IPC ve LSI sayısındaki sürekli artıştır.

Bir MPC seçerken, ekipmanın belirli gereksinimleri karşılaması gerekir: gerçek zamanlı çalışma; artan güvenilirlik; gürültü bağışıklığı; Bakım kolaylığı; ekipmanın ömrü boyunca tekrar tekrar çözülen sabit bir dizi görevin varlığı.

IPC seçimi üç ana kritere göre yapılır:

1) yazılım geliştirme açısından, bit derinliğini, kullanıma hazır genel amaçlı kayıtların sayısını, komut setini ve adresleme yöntemlerini, yığının varlığını ve organizasyonunu analiz etmek gerekir;

2) sistem tasarımı ile ilgili olarak, şunları belirlemek gerekir: MP mimarisinin türü (kesitli veya tek çip), kontrol organizasyonunun türü (mikro program veya sabit mantıkla), diğer kümelerden mantıksal olarak ortak LSI'nin varlığı, hız MP'nin kesintiye uğraması ve belleğe doğrudan erişim olasılığı, otomatik bir tasarımın mevcudiyeti;

3) MPS donanımının geliştirilmesi açısından, aşağıdakileri dikkate almak gerekir: LSI'nin elektriksel uyumluluğu, güç kaynaklarının sayısı ve güç tüketimi, paketin boyutu ve türü, pin sayısı, çalışma sıcaklığı aralığı, vb.

Belirli bir uygulama için bir RPC seçimi, genellikle üretildiği teknoloji temelinde yapılır.

Sorular ve görevler

1. Üretim sistemlerinde MP ve mikro bilgisayarların kullanımını hangi faktörler belirler?

2. Tek çipli MP'ler çoklu çipli olanlardan (kesitsiz ve kesitli) nasıl farklıdır?

3. MP, MPU ve MPS'yi karakterize eden genel parametreler nelerdir?

4. Milletvekilleri hangi gerekçelerle karakterize edilir?

5. Modern MT'nin ana parametrelerini adlandırın.

6. Bilgi işlem cihazları ve sistemleri tasarlanırken mikroişlemci setlerini seçme kriterleri nelerdir?

1.2. Genel Konularkuruluşlar veişleyenmikroişlemci aygıtlarıve sistemler

Mikroişlemcili cihazların yapısıve sistemler

Herhangi bir MPS, bir MP, bir bellek sistemi, bir bilgi giriş-çıkış sistemi ve bir kontrol veya kontrol nesnesi ile arayüz oluşturmak için bir sistemden oluşur.

mikroişlemci ve aritmetik-mantıksal veri dönüşümleri için bir merkezi kontrol cihazı ve bir cihaz rolünü oynar.

Hafıza fiziksel olarak birkaç seviyeden oluşan bir sistem olarak uygulanmaktadır.

Kalıcı depolama aygıtları (ROM)önceden kaydedilmiş verilerin uzun süreli saklanması için tasarlanmıştır ve yalnızca okuma modunda kullanılır. Enerjiden bağımsızdırlar.

Rasgele erişim belleği (OZP) işlemcinin hızına yaklaşan bir hızla çevrimiçi yazma ve veri okuma modlarında çalışın. Enerji bağımlıdırlar.

Harici depolama aygıtları (Inhafıza) büyük miktarda bilgi depolama, disket ve sabit manyetik diskler, kompakt diskler (lazer) vb.

cihazlarveri girişi (ID) verileri dışarıdan MP kayıtlarına veya belleğe aktarmak için tasarlanmıştır. Bunların arasında klavye, çeşitli kontrol panelleri, manyetik ve lazer diskler vb.

Veri çıkış cihazları (UVv) MP kayıtlarından veya bellek hücrelerinden iletilen verileri kabul etmek için tasarlanmıştır. Bunlar ekranlar, yazdırma cihazları, VZU, kontrol panelleri, çiziciler (çiziciler), vb.

Kontrol veya kontrol nesnesini MPU veya MPS ile arayüzlemek için, ekipman sensörler ve aktüatörler içermelidir. MPS'nin kullanıp kullanmadığını MPU'ya bağlamak için bloklarbirleşme, arayüz eşleştirme işlevlerini gerçekleştiren Bazen bu bloklara nesne (USO) ile iletişim cihazları denir.

Mikroişlemcili cihazların arayüzlerive sistemler

MPS'nin mimari yetenekleri büyük ölçüde arayüz tipine bağlıdır.

Birleşik arayüz bir dizi kuraldırMPS cihazları arasındaki birleşik etkileşim ilkeleri.

Arayüz, cihazları (konektörler, bağlantılar) bağlamak için donanım, bağlantıların isimlendirilmesinin ve özelliklerinin belirtilmesini, yazılımı, arayüz sinyallerinin doğasının açıklamalarını ve bunların zamanlama şemalarını ve ayrıca sinyallerin elektrofiziksel parametrelerinin bir tanımını içerir.

Arayüzün ana görevi, birleştirme temelinde, MPS'de tek bir bilgi işleme sürecinde farklı işlevsel öğelerin belirtilen otomatik etkileşim kalitesini önceden belirleyen donanım, yazılım ve yapıcı araçların uyumluluğunu sağlamaktır. Sonuçların ve kontrol eylemlerinin toplanması, dönüştürülmesi, kaydedilmesi ve yayınlanması.

MPS mimarisi temel olarak üç arayüz katmanı ile tanımlanır: sistem, makineden makineye ve küçük arayüz (çevresel cihaz arayüzü).

Sistem arayüzü işlemci ve OZP ile eşit bilgi alışverişi için MPS'nin ana modüllerinin (bloklarının) tek bir sisteme entegrasyonunu sağlar.

Sistem arabirimleri, yoğunlaştırılmış (PC arabirimleri), yerel olarak yoğunlaştırılmış (Q-bus) ve yerel (Unibus) olarak ayrılmıştır.

Makineden makineye arayüzçok işlemcili sistemlerin ve yerel ve dağıtık sistem ve ağların inşasını sağlar.

Küçük arayüzlerçevresel aygıt gruplarının ve ROM'un çalışmasının fiziksel ilkelerindeki farkı dikkate alın. Küçük arabirim denetleyicileri, sistem arabirimine erişim sağlar. Bu durumda, çevresel aygıtların ve ROM'un denetleyicileri, ilgili küçük arabirime gider.

Mikroişlemci yönetimicihazlar (sistemler)

MPU'daki bilgi sinyallerinin zamansal koordinasyonu, MP kontrol cihazından gelen özel sinyaller kullanılarak gerçekleştirilir. MPU veya MPS, saat sinyallerinin gelişiyle eşzamanlı olarak çalışır. MPU'da (MPS) gerçekleştirilen en basit eyleme denir. belirtmek, bildirmek. Saat sinyalinin bir periyodunu kapsar - saatliaralık veya vuruş.

Belirli sayıda saat aralığı makineÇevrim. Tek bir bellek veya G/Ç aygıtı erişimi, bir makine döngüsü gerektirir. Bir döngüde, adres kodu (muhtemelen talimat veya veri baytı ve adres kodu baytı) ile birlikte talimat veya veriler getirilir.

Makina çevrimi- ekibin bir parçası (bazen tüm ekip). Her makine döngüsünün başlangıcında, MP'nin senkronizasyon pininde bir senkronizasyon sinyali belirir. Depolama cihazına (belleğe) ve (veya) giriş / çıkış cihazına (I/O) aktarılır ve yeni bir makine döngüsünün başlangıcı hakkında “bildirir”, bunun sonucunda bunların çalışma zamanlamasının sonucu olarak MP'nin çalışması ile cihazlar elde edilir.

Şema 1. Takım yapısı

Takım Döngüsü- komutu bellekten almak ve yürütmek için gereken zaman aralığı. Bir veya daha fazla makine döngüsünden oluşur. sayıları, kural olarak, belleğe veya ICU'lardan birine MT erişimlerinin sayısına eşittir. Komut yapısı Şema 1'de gösterilmektedir.

kontrol cihazı kontrol ve senkronizasyon işlevlerini yerine getirir, yani MP'nin durumlarındaki değişikliği gerekli sırayla kontrol eder, bunları saat üretecinin sinyalleriyle koordine eder. MP içindeki süreçleri kontrol etmek için tasarlanmış bir kontrol sonlu otomattan ve dışarıdan sinyal alarak sistemi kontrol eden sinyaller üreten bir devreden oluşur.

Komut kodunun şifresi çözülür ve bu komutun yürütülmesine dahil olan MP modülleri ve blokları üzerinde hareket eden ikili sinyallere dönüştürülür.

Komut döngüsü iki aşamaya ayrılır: getirme aşaması ve yürütme aşaması.

Örnekleme aşaması- otomat, program sayacındaki sayının adres arabelleği kaydına aktarıldığına göre bir sonraki döngünün başlangıcını ayarlar. Oradan, adres yolu aracılığıyla, talimatın adres kodu, şifresinin çözüleceği belleğe gönderilir. Bellek hücresinden gelen "oku" sinyalinden sonra, komut kelimesi okunur ve veri yolu üzerinden tampon veri kaydına iletilir, buradan komut kaydına aktarılır ve ardından şifresi çözülür.

Yürütme aşaması- kontrol cihazı, komutu yürütmek için gerekli bir dizi sinyal üretir. Bu süre boyunca sayaç verileri bir artırılır. Bu, yürütülecek bir sonraki talimatın adresini oluşturur.

Bir kelimeyi okuma veya yazma, erişim süresi olarak adlandırılan belirli bir zaman aralığında gerçekleşir. Belleğe erişmek ve ondan hazır sinyali almak için harcanan zaman aralığına hazır bekleme döngüsü denir. Makine döngüsünün bir parçasını oluşturur.

MP, bellek ve hava üfleme arasındaki bilgi alışverişi temel olarak üç modda gerçekleştirilir: program kontrollü değişim, kesinti modunda değişim, doğrudan erişim modunda değişim.

Yazılım kontrollü değişim. Bu modda MP, yazılım veri aktarımını başlatmak için belleğin veya çevresel aygıtın (PU) bir G/Ç işlemi gerçekleştirmeye hazır olup olmadığını belirler. Hava püskürtücüler, dahili durum hakkında sinyaller üretmek için donanıma sahip olmalıdır. MP bu bilgiyi okur ve sonucun analizine dayanarak cihazın bilgi alışverişine hazır olduğu sonucuna varır. Gelecekte, arayüz protokolüne uygun olarak veri alışverişi yapılır.

kesme modu. Hava üfleme ve MP (dış koşulların beklenmeyen oluşumuna tepki) arasında anında veri aktarımı gerektiğinde kullanılır. Bu durumda, MP ana programın çalışmasını kesmeli ve harici cihaza servis vermek için programı yürütmeye başlamalıdır. Bu moda kesme denir. MP kesmeleri, yalnızca MP'nin kesme isteklerine yanıt vermesine izin verildiğinde mümkündür.

Kesinti sinyalini aldıktan sonra, MP mevcut işlemi tamamlar, dahili veri ve kontrol kayıtlarının tüm bilgilerini belleğe aktarır ve kesme servis rutinine ilerler. Kesinti ile ilgili bilgi alışverişinin sona ermesinden sonra, kesintinin başlangıcında var olan MP'nin durumu geri yüklenir.

Üç tür kesinti vardır: basit, vektör ve öncelik.

Basit kesme bazı giriş/çıkış cihazlarının MP hizmeti gerektirdiğini bildirir.

Vektör kesmeçevre biriminin ihtiyaç duyduğu kesme tipini (seviyesini) tanımayı mümkün kılar. Vektör, cihazın belirli adresini belirtir.

Öncelikli kesinti kesinti tanımaya ek olarak, kesintiye uğrayan cihazlara servis verilmesinde önceliğin belirlenmesi gerçeğinden oluşur.

Doğrudan modhafıza erişimi. Bazen MP dışında bilgi alışverişine ihtiyaç duyulur. Bunun nedeni, veri dizilerini değiştirmek için harcanan zamanın azalmasıdır. Bu durumda, MPP veya MMS'in donanımı, veri aktarımını yöneten ve MPU'yu bu işlevlerden kurtaran bir doğrudan bellek erişim denetleyicisi içerir.

DMA'lar işlemciye paralel olarak bağlanır. Bu kanalların ayrılması, MPS veri yollarının durumunu kontrol eden üç durumlu mantık kullanılarak gerçekleştirilir. Doğrudan bellek erişimi sırasında MP, orijinal devrelerini yüksek empedans durumuna aktarır ve bilgi kanalını kırmaya benzer şekilde sistemden yalıtılır. Dahili kayıtların durumu, doğrudan erişim kanalı talebi sırasında olduğu gibi korunur.

Doğrudan bellek erişimini uygulamanın birkaç yolu vardır. Hepsi, program kontrollü değişim moduna kıyasla en yüksek veri değişim oranını sağlar. Çoğu zaman, doğrudan bellek erişim modu, MP'nin durdurulması ve MP döngüsünün artması (zamanın uzaması) ile uygulanır.

Durdurma yöntemi bu durumda MP'nin veri aktarımı süresince sistem veri yollarından bağlantısının kesilmesi gerçeğine dayanmaktadır. Durma durumuna geçmeden önce, MP mevcut komutun yürütülmesini tamamlar ve lastikler serbest kalana kadar birkaç döngü boyunca bu durumda kalır. Bu doğrudan bellek erişimi şemasına göre, veri yollarından bağlantısı kesilen MP, bazı durumlarda MPS için kabul edilemez olabilen kesintilere yanıt vermez.

Yakalama yöntemi seri veri alışverişinden oluşur. Yüksek hızlı hava püskürtücüler yalnızca bir kelime alışverişinde bulunur; onların hizmet talepleri, MP bir makine çevriminden diğerine geçiş durumundayken, mevcut talimatın yürütülmesini bir makine çevrimi kadar geciktirerek karşılanır. Bu DMA modunda, MP her bir veri kelimesini aktarmak için yalnızca bir makine çevrimi için duraklar ve ardından kontrol MP'ye döner.

adres alanı. Adresleme mekanizması ve yöntemleri

adres alanı MPU (MPS) - operasyonel adresler setihafıza veMP tarafından yürütülen programlarda kullanılabilen ROM.

MP RAM'in adres alanının boyutu, bir bütün olarak MPS'nin performansını önemli ölçüde etkileyen niceliklerden biridir.

Adres alanı boyutu - değer,maksimum tarafından belirleniradres boyutu ve minimum birim cinsinden ifade ediliradreslenen bellek öğelerinin sayısı - bayt veya büyükbirimler (KB, MB, GB).

MPU'daki adres 16 bitlik bir kelime biçiminde oluşturulmuşsa, adres alanı 64 KB'dir, 20 bitlik bir kelime 1 MB'dir, vb. Bazen, MPU'nun bileşenleri arasındaki bilgi bağlantılarını basitleştirmek ve G/Ç prosedürlerinin programlanmasını kolaylaştırır, kayıt adresleri MP ve UVV adres alanına yerleştirilir. Böyle bir giriş/çıkış komutu yoktur. MP ve UVV kayıtlarının adresleri, bellek hücrelerine erişim ile aynıdır.

2 baytlık bir adres olan bir sözcük oluşturulduğunda, çift (düşük) adrese sahip bayt düşük, tek adrese sahip bayt ise yüksek olarak adlandırılır.

Çoğu zaman, LPA adres alanı, genel adres aralığını gösteren bir diyagram olarak temsil edilir. Bu aralık, yapısal modüllerin, yongaların, farklı bellek türlerinin (RAM, ROM, vb.) standart boyutlarına veya bunların özel amaçlarına karşılık gelen alt aralıklara bölünebilir.

MP komut sisteminde adres komutları önemli bir yer tutar.

Adres komutu - hangi takımişlenenlerinden biri veya her ikisiçalışma belleğinde.

Talimatın böyle bir organizasyonunun nedenlerinden biri, talimatın uzunluğundaki kısıtlamalar nedeniyle tam fiziksel adresi doğrudan talimatın bir işlenenine yazmanın imkansız olmasıdır. Bu nedenle, işlenene yalnızca komutun gerçek adresinin hesaplandığı yardımı ile belirli bir değer yerleştirilir.

Genel olarak, adresleme mekanizması büyük ölçüde MPU'nun (MPS) RAM'e minimum sayıda erişimle bilgileri verimli bir şekilde işleme yetenekleri tarafından belirlenir. MPU'da (MPS), iki veya daha fazla kelimeden oluşan komutlar sıklıkla kullanılır.

Adres kelimesinin uzunluğunu sınırlamak için, aşağıdakileri mümkün kılan çeşitli adresleme yöntemleri kullanılır:

1) komutun uzunluğundan daha az bit ile bellek hücresinin tam adresini belirlemek;

2) işleme sırasında adresleri hesaplanan ve bellek genişletme cihazlarına erişim sağlayan bellek hücrelerine erişim;

3) programdaki adresi değiştirmeden programın herhangi bir bellek konumuna yüklenebilmesi için talimatın konumuna (geçerli adres) göre veri adreslerini hesaplayın.

Tüm adresleme modları iki gruba ayrılabilir:

1) yürütme adresinin komuttaki bir kod değeriyle belirlendiği modlar;

2) komutun adres bölümünün içeriğini kullanan komutlar ve yürütme adresini oluşturmak için bir veya daha fazla kayıt.

Birinci grup doğrudan, doğrudan kayıt, dolaylı, dolaylı kayıt, doğrudan, otomatik artışlı ve otomatik azalan adreslemeyi içerir ve ikinci grup temel, göreceli, yığın, sanal adreslemeyi içerir.

doğrudan adreslemeİşlenenler, talimatta yazılan adresteki bellekten (kayıtlardan) alınır. Ancak, doğrudan bir adresi belirtmek, büyük bir adres talimatında açıklamak için birçok bit gerektirir. Bunu azaltmak için, bazı mikro bilgisayarlar, adres alanının sınırlı bir bölümüne erişim sağlayan kısa doğrudan adresleme kullanır. Komuttaki adresler sembolik değil (bağlarla belirtilir), ancak mutlak ise, bu tür doğrudan adresleme denir. mutlak.

Doğrudan kayıt adresleme. V Talimat kodu, işlenenin bulunduğu kaydın adını saklar. Doğrudan adresleme yeterince esnek değildir, çünkü programların bellekte hareketini sağlamak için gerekli adres değiştirme prosedürünü gerçekleştirmenize ve dizilerle çalışma rahatlığına izin vermez.

dolaylı adresleme Bellekten işlenen dolaylı olarak seçilir - bir bellek hücresi aracılığıyla. Talimat kodu, bir bellek adres işaretçisi içerir. Bu tür adreslemeyle komutlar yürütülürken belleğe iki kez erişilir: önce adres, ardından işlenen seçilir. Böylece komut kodunu değiştirmeden, komut kodu alanının gösterdiği hafıza alanında saklanan adresi değiştirmek mümkündür.

Dolaylı kayıt adresleme. Hız açısından, dolaylı adres işlemcinin dahili kaydından seçildiği ve ek bir bellek döngüsü gerektirmediği için doğrudan adreslemeye yaklaşır. Bu adresleme şemasında, bir kayıt veya kayıt çifti, işlenenin adresini içerir. Kayıtlar, doğrudan adreslemeli komutlar kullanılarak yüklenir. Dolaylı yazmaç adresleme modunun kullanılması, veri aktarım prosedürlerinde, dizi öğelerini görüntülerken vb. gerekli olan program yürütme sırasında bellek adresini hesaplamayı mümkün kılar.

doğrudan adreslemeİşlenen talimat kodundadır. Bu durumda komutlar iki veya üç kelimeden oluşabilir.

Otomatik artış ve otomatik azalış adresleme. Yürütülebilir adres, dolaylı kayıt adreslemesiyle aynı şekilde hesaplanır ve ardından kaydın içeriği artırılır. Bayt adresli bir mikrobilgisayarda, yazmacın içeriği, sonraki baytı belirtmek için 1 ile ve işlem kodu tarafından belirlenen işlenenin boyutu ile bir sonraki kelimenin adresini belirtmek için 2 ile artırılmalıdır. Otomatik azaltma modunda, işlenen adresi, adres kaydından 1 veya 2 çıkarılarak oluşturulur. Otomatik artışlı adreslemeden farkı, çıkarmanın kaydın içeriği yürütme adresi olarak kullanılmadan önce gerçekleşmesidir. Otomatik artırma ve otomatik azaltma modlarının kombinasyonu, herhangi bir kaydı yığın işaretçisi olarak etkin bir şekilde kullanmayı mümkün kılar. Bu adresleme aynı zamanda döngüler düzenlenirken ve dizi değişkenli işlemlerde de kullanılır.

temel adres. Mutlak adresli komutlar içeren programlar, adresler değiştirilmeden bellekte taşınamaz. Temel adreslemeyi kullanarak programların bellekte hareket etmesini sağlayabilirsiniz, bunun yardımıyla işlenenin adresinin temel kaydın içeriği - pozitif veya negatif bir ofset ve talimat kodunda bulunan adres eklenerek hesaplanır.

Göreceli adresleme. Yürütülebilir adres, talimatın adres alanına temel adres eklenerek oluşturulur. Temel adres olarak program sayacının içeriği kullanılır. Göreceli adreslemenin kullanılması, program sayacının içeriğine göre her zaman bir kayma belirtmeleri nedeniyle bellekte bağımsız hareket eden programlar oluşturmayı mümkün kılar. Ofset, her iki yönde bir atlama sağlayan ikinin tümleyen işaretli tamsayı olarak yorumlanır.

yığın adresleme Otomatik artış veya otomatik azalış (otomatik artış veya otomatik azalış) ile dolaylı kayıt adresleme, burada işlenen adres işaretçisi ile kayıt örtülü olarak belirtilir (işlenenlerin konumunun ve sonucun sabit olduğu talimatlar vardır - örtük adresleme). Örtülü olarak tanımlanmış bir kaydın (yığın işaretçisi) içeriğinin gösterdiği bellek konumuna denir. toplantı yığın. Yığın adresleme, adı verilen bir bellek parçasına özel erişim sağlar. yığın,“son giren ilk çıkar” ilkesine dayanmaktadır. Yığına erişmek için, yığına ve yığından bilgi yazan talimatlar kullanılır. Yığına bilgi yazan yönergeler yığın işaretçisinin içeriğini azaltırsa ve yığın artışından bilgi kaldıran yönergeler yığının azalmaya çalıştığını, aksi takdirde - arttığını söyleriz.

sanal adresleme Her bellek kullanıcısı (işletim sistemi veya insan), uygulanan bir sorunu çözerken sanal adresleri manipüle eder, bu da sistemin gerçek RAM'inin sınırlı bir kapasiteye sahip olmasına rağmen, sınırsız kapasiteli bellek yanılsaması yaratır. İllüzyon, sistemin ana belleği (OZP) ve harici bellek arasında bellek sayfalarının dinamik olarak yeniden dağıtılmasına dayanan sanal adresleme mekanizması nedeniyle yaratılır.

İşletim sistemi, her kullanıcı için sanal ve fiziksel sayfalar arasında bir yazışma tablosu oluşturur. Ana bellekte olmayan bir fiziksel sayfaya erişilirse, harici bellekten kaldırılır ve ana sayfaya yüklenir ve gereksiz sayfa harici bellekte “gizlenir”. Sanal bellek veya basitçe sistem belleği, fonksiyonel özelliklere göre bilgilerin depolandığı bölümlere ayrılabilir. Örneğin, bir segmentte - komutlar, ikinci - verilerde, üçüncü - yığının bir bölümü. Veya, yazmanın yasak olduğu bir segmentte - işletim sistemi çekirdeği ve ikincisinde, yazma ve okumaya izin verilen - kullanıcı programları. Böylece segmentasyon mekanizması yardımıyla hafıza koruma sorunları çözülür.

Segmentasyon K1810VM86 MP'de uygulandı ve sanal adresleme IAPX286 MP (Intel) ve 68010'da (Motorola) uygulandı.

komut sistemi. Genel olarak, bir komut, makine dilinde bir talimat şeklinde bir yürütme cihazının çalışmasındaki tek bir adım olarak anlaşılır. Komut, gerçekleştirilecek işlemi ve niteliklerini tanımlar: verilen iş döngüsünde gerçekleştirilecek işlemin türü; operasyonda yer alan bir veya iki işlenenin adresi; operasyon sonucunun yeri; sonraki komutun konumu. MP'nin küçük kapasitesi nedeniyle, bu tür bilgileri tek bir makine kelimesiyle belirtmek zordur ve bazen imkansızdır. Bu nedenle, bir komut birkaç makine kelimesinden oluşabilir.

Genel olarak, aşağıdaki komut türleri ayırt edilir:

1) transfer - tek yönlü (kayıt-kayıt, hafıza-kayıt, kayıt-hafıza, hafıza-hafıza), değiş tokuş (kayıt-kayıt, hafıza-kayıt, hafıza-bellek), giriş / çıkış komutları;

2) aritmetik;

3) mantıksal;

4) işlem bitleri;

5) hesaplama sırasını değiştirenler - atlamalar (koşulsuz, koşullu), alt programlara çağrılar, alt programlardan geri dönüşler, yazılım kesintileri.

Kendi kendine muayene için sorular

1. MP ve MPS'nin genelleştirilmiş yapısını tanımlayın.

2. MPU ve MPS arayüzleri hangi gerekçelerle sınıflandırılır?

3. Örnekleme aşaması olan yürütme aşaması sırasında bir komutu (komutu) işlerken MP hangi işlevleri yerine getirir?

4. MP ile depolama cihazları arasındaki bilgi alışverişi hangi koşullar altında kesinti veya belleğe doğrudan erişim modunda gerçekleştirilir?

5. Adres alanının boyutu MP'nin hangi parametrelerine bağlıdır?

6. Ek 1'i kullanarak, doğrudan, dolaylı, anında, temel, göreceli, otomatik artış, yığın ve sanal adresleme ile adres komutlarına örnekler verin.

7. Komut kodu, MP komut sisteminde hangi bilgileri taşır?

1.3. Süreç Resmileştirmetasarımmikroişlemci aygıtlarıve sistemler

Tasarımın boyutları ve seviyeleri

MPU ve MPS'yi tasarlarken, çoğu durumda blok hiyerarşik yaklaşım, Tasarlanan sistem hiyerarşik seviyelere ayrılmıştır. En üst düzeyde, tasarımı yapılan sistemin sadece genel özelliklerinin ve özelliklerinin gösterildiği en detaysız görünüm kullanılır. Sonraki seviyelerde, detay seviyesi artar. Bu durumda, MPS bir dizi ayrı blok olarak kabul edilir. Her seviyede, bu seviyede mevcut olan tasarım araçları kullanılarak uygulanan belirli bir karmaşıklıktaki görevler formüle edilir ve çözülür. Blok ataması, her bir bloğun dokümantasyonu bir tasarımcının anlayabileceği şekilde olmalıdır.

Böylece blok hiyerarşik yaklaşım, büyük ölçekli bir MPS tasarlamanın karmaşık görevlerini küçük ölçekli görev gruplarına dağıtmayı mümkün kılar ve grup içinde farklı görevler paralel olarak çözülebilir.

ESKD'ye uygun olarak cihaz ve sistemler tasarlanırken yapısal, fonksiyonel ve şematik diyagramlar kullanılır.

Simüle edilmiş tasarım şemasında yatay ve dikey seviyeleri ayırt etmek şartlı olarak mümkündür (Tablo 1). Dikey seviyelere yönler denir. MPU ve MPS tasarımının bu yönleri vardır: işlevsel, algoritmik, tasarım ve teknolojik.

fonksiyonel yönüüç yatay seviyeden (2., 3. ve 4.) oluşur: sistem (yapısal), işlevsel-mantıksal ve devre-bileşeni. Sistem düzeyinde, MPU'nun veya MPS'nin bir blok şeması, işlevsel-mantıksal düzeyde tasarlanmıştır - MPU'nun veya MPS'nin parçası olan tüm cihazların işlevsel ve şematik diyagramları.

Devre bileşeni seviyesinin devre alt seviyesinde, entegre devrelerin veya LSI parçalarının (VLSI) devre şemaları tasarlanır. Bu durumda elemanlar elektronik devrelerin bileşenleridir: dirençler, kapasitörler, diyotlar, transistörler, vb. Bileşen alt seviyesinde, bir yarı iletken kristalin eleman bölümlerinden oluşan bireysel IC bileşenleri geliştirilir.

algoritmik yön ayrıca üç yatay seviye (1., 2. ve 3.) içerir: MPU veya MPS'nin çalışma şemasının geliştirme seviyesi, mimari seviye ve ürün yazılımı seviyesi. 1. seviyede, MPU veya MPS'nin işleyişi için şemalar geliştirir, MPS'nin mikroişlemci kısmı tarafından çözülecek görevleri belirler, yazılım sistemlerini planlar ve algoritmaların blok diyagramlarını geliştirirler. Yazılım modüllerinin daha da geliştirilmesi.

2. (mimari) seviyenin ana görevi, MPS'nin mikroişlemci bölümünün mimarisinin seçimidir. Bazen sistem seviyesinin görevlerinden biri olarak kabul edilir, yani mimari ve sistem seviyeleri fonksiyonel tasarımın bir yönü olarak birleştirilir.

Tablo 1.Yatay ve dikeytasarım seviyeleri

yatay seviye

Yönler (dikey seviyeler)

fonksiyonel

algoritmik

Tasarım

Teknolojik

LPA'nın (MPS) işleyişi için yasaların geliştirilmesi; algoritma tasarımı; modül programlama

Sistemik (yapısal)

Mimari (makine)

Yükseltici, panel

Teknolojik sürecin şematik bir diyagramının geliştirilmesi

fonksiyonel-mantıksal

mikro yazılım

TEZ, modül

Teknolojik süreç yollarının geliştirilmesi

Devre-teknik-bileşen-ny

IC Kristalleri

Teknolojik operasyonların tasarımı

3. (mikro program) seviye, donanımda MPU mikroişlemcisinde veya MPS'de gerçekleştirilen işlem ve prosedürlerin mikro programlarını tasarlamaya yöneliktir.

Tasarım yönü yükselticiler, paneller, TEZ_v, modüller ve kristaller (chip_v) ІС (2., 3., 4. eşit) tasarlamanın yatay hiyerarşik seviyelerini içerir.

teknolojik yön 2., 3. ve 4. olmak üzere üç yatay seviyeden oluşur. 2. seviyede, MPU veya MPS üretimi için teknolojik sürecin bir şeması geliştirilir, yani MPU (MPS) üretimi için aşamaların bileşimi ve sırası belirlenir. 3. seviyede, MPU (MPS) üretimi için teknolojik sürecin yolları geliştirilir, yani ürünün üretimi için işlem bileşimini ve sırasını belirler, teknolojik ekipman türlerini ve gruplarını seçerler. 4. seviyede, MPU (MPS) bileşenlerinin üretimi için teknolojik işlemler tasarlanmıştır.

Tasarım seviyelerinin ana görevleri

Sistem ve mimaritasarım seviyeleri:

1) LPA (MPS) organizasyon ilkelerinin belirlenmesi;

2) bir blok diyagramın geliştirilmesi, yani bir cihazın veya sistemin bileşiminin tanımı ve ekipmanın işleyişi sürecinde bileşenlerinin etkileşim yöntemi;

3) mikroişlemci (mikroişlemci) LSI (VLSI) setinin seçimi;

4) bir cihazın veya sistemin parametreleri için gereksinimlerin belirlenmesi ve bireysel MPS cihazlarının geliştirilmesi için teknik bir görevin (TOR) oluşturulması.

Bireysel MPS cihazlarının geliştirilmesi için İş Tanımı şunları içerir: her cihaz tarafından gerçekleştirilen tüm işlevlerin numaralandırılması; cihazın çalışma koşulları; girdi ve çıktı parametreleri için gereksinimler; ekipmanın diğer cihazlarıyla değiş tokuş edilen bilgilerin içeriği ve şekli hakkında veriler; bir cihaz oluşturmak için eleman tabanı.

İşlevsel-mantıksal ve bellenimtasarım seviyeleri:

1) her cihazın işlevlerinin detaylandırılması;

2) programlı olarak gerçekleştirilen işlevlerin algoritmik uygulaması ve kabul edilen algoritmik dillerden birinde algoritmaların sunumu;

3) LPA'nın (MPS) organizasyonu için ilkelerin seçimi ve konseptinin geliştirilmesi;

4) her bir komut veya mikro komut seti ve bunların yürütülme sırası için temel teşkil eden mikro programların geliştirilmesi;

5) MPS'nin parçası olan dijital cihazların işlevsel ve devre şemalarının sentezi;

6) MPP veya MPS için izleme ve teşhis testlerinin sentezi;

7) devre tasarım seviyesi için TOR formülasyonu.

Karmaşık MPP için ana tasarım kriterleri veMPS:

1) tasarım kalitesi;

2) tasarım maliyeti;

3) gelişme koşulları;

4) istihdam edilen uzman geliştiricilerin sayısı.

Tasarım sürecini resmileştirme olanaklarına ve yinelemeli doğasına göre, bilgisayar destekli MPP veya MPS tasarımı seçimi tercih edilir. Bugün, MPP ve MPS'nin büyük karmaşıklığı nedeniyle, bilgisayar destekli tasarım yöntemleri kullanılmadan mikroişlemci bölümünün tam olarak geliştirilmesi genellikle imkansızdır.

Soru. Görev

1. MPP ve MPS tasarımına blok hiyerarşik yaklaşımın özünü açıklayın.

2. Simüle edilmiş MPP tasarım şemasında yönler neyi temsil eder?

3. MPP yatay seviyelerden hangisinde TK olarak tasarlanmıştır ve buna hangi yön karşılık gelir?

4. MPP'yi tasarlamanın sistem seviyesinin ana görevlerini adlandırın.

5. MPP tasarımının mimari düzeyinin özellikleri nelerdir?

6. MPP ve MPS'yi tasarlamanın işlevsel-mantıksal seviyesinin özü nedir?

7. MPP'nin mikro program düzeyinde çözülen ana görevler nelerdir?

1.4. Mimarimikroişlemcicihazlar ve sistemler

Mimarinin özü ve ilkeleri

mikroişlemci cihaz ve sistemlerinin geliştirilmesi

Mimarinin özüMPU ve MPS.

mikroişlemci mimarisi temsil etmek için kullanılan kurucu elektronik bileşenlerinin işlevselliğine yansıtılır.veriler, makine işlemleri,algoritmaların ve hesaplama süreçlerinin açıklamaları.

Mimari, bilgisayar teknolojisinin donanımını, bellenimini ve yazılımını birleştirir ve belirli bir MPS oluştururken, yazılım ve ek donanımda kullanıcı tarafından neyin uygulanması gerektiğini açıkça tanımlamayı mümkün kılar.

Aksi takdirde, MP'nin mimarisi, tasarlanan MPU'ya veya MPS'ye atanan işlevlerin donanım veya yazılım uygulamasına ilişkin MP'nin yetenekleri nedeniyle mantıksal organizasyonudur. MP'nin yapısını, temsil yöntemlerini ve veri formatlarını, bir dizi komutu, kontrol kelimelerinin formatlarını, yapının kullanıcı tarafından erişilebilir tüm öğelerine erişim yöntemlerini ve MP'nin harici sinyallere tepkisini görüntüler.

MP mimarisi, kullanıcının bakış açısından bir dizi özellik ve karakteristik olarak görülebilir. Geliştiriciler ve kullanıcı programcıları tarafından kullanılan özelliklere göre LPU veya MSM'nin bir donanım, yazılım ve bellenim kombinasyonunun optimal kombinasyonu için metodolojiyi açıklar.

geliştirirken mimariMPU MP için olduğu kadar, veri ve komut formatları, komut sistemi ve adresleme yöntemleri belirlenir, adresleme türleri, arayüz gereksinimleri doğrulanır. Doğru mimari seçimi, MPU'nun işleyişi için algoritmaları uygulayan hesaplama sürecini optimize etmeyi mümkün kılar.

Mimari mikrobilgisayar - işlevsel birimler, ana bilgisayar modülleri, veri yapıları açısından soyut bir mikrobilgisayar kavramı. Mimari, donanımın özelliklerini, komutların yürütme süresini, programın uygulanmasındaki paralellik derecesini ve diğer benzer özellikleri özel olarak tanımlamaz. Mikrobilgisayar yapısının özelliklerini gösterir, özellikle: bir komutlar sistemi, adresleme modları, veri formatları, kullanıcıya sunulan bir dizi kayıt. "Mimari" terimi, bir mikrobilgisayarın sağladığı yetenekleri tanımlamak için kullanılırken, "organizasyon" terimi bu yeteneklerin nasıl uygulandığını tanımlar.

Mimari Açıklama anlaşılması sadece bir programcı için önemli olmayan bir mikrobilgisayar modelidir. Yeni bir mikrobilgisayarın potansiyel geliştiricisi için bir başlangıç ​​temeli olarak kullanılabilir: bu durumda, geliştirici belirli bir mantıksal şemayı temsil eden mimarinin öğelerini, bir dizi gerekli birbirine bağlı bileşenleri dönüştürür.

Tüm mikrobilgisayarlar, kendi iç mikro mimarisine sahip işlevsel bloklar içerir: 1) işlemci, bir aritmetik mantık birimi ve bir kontrol biriminden oluşur; 2) bellek, bir dizi depolama elemanı (hücre) ve bir kontrol birimidir; 3) bilgi giriş ve çıkış cihazları aynı zamanda mekanik ve elektronik modülleri içeren karmaşık cihazlardır. Bu işlevsel bloklar bir veri yolu sistemi kullanılarak birleştirilir: mikrobilgisayar birimleri arasında bilgi alışverişinin yapıldığı veri yolu; adresleri yazılım kontrollü cihazlara aktarmak için kullanılan adres yolu ve kontrol kelimelerini aktarmak için kontrol yolu.

Tanım bilgisayar Mimarisi, evrensel bir mikrobilgisayar olarak, genel olarak mikrobilgisayar mimarisinin tanımından anlam olarak farklı değildir.

Bilgisayar Mimarisi , Bir programcının bakış açısından, bir bilgisayar sisteminin bir dizi karmaşık donanım ve yazılım olarak soyut bir temsili (veya tanımı). Özünde mimari, bir bilgisayarın işlevsel (mantıksal) organizasyonu hakkında bilgidir.

Mimari MPS - sistem tarafından münferit seviyelerde uygulanan fonksiyonların tanımı ve bu seviyeler arasındaki sınırların tam tanımı. MPS'nin organizasyon ilkelerini ve bileşenlerinin, özellikle işlemci, bellek vb. işlevlerini tanımlar. MPS'nin mimarisi, mantıksal yapıların ve modüllerin tasarım özelliklerini ve bunların üretim teknolojisini yansıtmaz.

Geliştirme ilkeleriMPU ve MPS

En başından beri, mikrobilgisayarların tasarımında ve geliştirilmesinde, aşağıdaki temel ilkeler esas olarak kullanılmıştır: modülerlik, omurga, mikro programlanabilirlik ve yapının düzenliliği.

Prensip modüler organizasyon bir dizi modüle dayalı mikrobilgisayarların ve MPS'nin yapımını sağlar.

Modül - yapıcı, işlevsel ve eelektriksel olarak bitmişcihaz,tek başına veya başkalarıyla kombinasyon halinde mümkün kılanmodüllerhesaplama veya kontrol problemlerini çözmekverilen sınıf.

Ayırmak işlevsel ve yapıcı modüller. Modüler yaklaşım, daha yüksek seviyelerdeki unsurları standartlaştırmayı mümkün kılar ve MPU ve MPS tasarlama maliyetini düşürür, kapasite oluşturmayı ve sistem yeniden yapılandırmasını basitleştirir.

Modüller ve elemanları arasındaki bağlantı esas olarak iki prensibe göre gerçekleştirilir: a) keyfilik ilkesibağlantılar,"her biri ile" kuralını uygulayan ve b) prensipsıralı bağlantılar- gövde, bağlantı sayısını en aza indirmeye izin verir. Giriş ve çıkış otobüslerini birbirine bağlayan otoyolları kullanarak farklı seviyelerdeki işlevsel ve yapıcı modüller arasında bilgi alışverişi sağlarlar.

Çoğu mikrobilgisayar ve MPS, çok düzeyli bir program kontrolü organizasyonuna sahiptir.

Prensip yazılım kontrolü çok işlevli mikroişlemci modüllerinin organizasyonunda en büyük esnekliği sağlar ve belirli bir mikro komut kombinasyonu aracılığıyla, mikrobilgisayarın problem oryantasyonunu gerçekleştirmeyi mümkün kılar. Bu ilke sayesinde, MPS'de makro işlemleri kullanmak ve alt rutinleri kullanmaktan daha verimli komutları ve programları yürütmek mümkündür.

Bellenim denetimi şunları sağlar:

Donanım yazılımını değiştirme yeteneği sayesinde daha fazla cihaz esnekliği,

Bellek gibi matris yapılarının yaygın kullanımı ile cihazların yapısının düzenliliğini artırır,

Dağıtılmış kontrol ve dağıtılmış bellek sorunlarına paralel çözüm sağlar,

Bellek yongaları kullanarak cihazların güvenilirliğini artırır,

Mikro program kontrol ünitesinin kontrolü, depolama cihazının içeriğinin kontrolüne indirgendiğinden, cihazların işleyişinin kontrolünü basitleştirir.

Düzenlilik ilkesi yapı elemanlarının tekrarlanabilirliğini ve aralarındaki ilişkileri önceden belirler.

Sistemin düzenliliği, kural olarak, organizasyonunun farklı seviyelerinde değerlendirilir. MPP ve MPS yapısının düzenliliğini arttırmanın ana yolları şunlardır:

1) bellek cihazlarının yaygın kullanımı;

2) belirli mikro işlemleri kayıtlara atamayı reddetme;

3) kayıt yapılarının kullanımı;

4) hafıza hücreleri şeklinde genel amaçlı kayıtların ve diğer kayıtların üretimi;

5) ana bilgi alışverişi yönteminin uygulanması;

7) mikro program kontrolü ilkesini kullanarak;

8) paralel MPS'nin geliştirilmesi.

Mikroişlemci cihaz ve sistem mimarilerinin sınıflandırılması

MPU ve MPS mimarilerinin, çoğunlukla genelleştirilmiş bilgisayar mimarisinin açıklamalarıyla örtüşen birkaç sınıflandırması vardır.

sınıflandırmaM. Flyna. Bu, bilgisayarlar arasındaki mimari farklılıkları gösteren başarılı sınıflandırmalardan biridir. Bilgisayarın mimari özellikleri, komutların (talimatların) akışı ve veri akışı açısından tanımlanır. Bu yaklaşım, bilgisayar mimarilerinin belirli sınıflardan birine atanmasını mümkün kılar (Tablo 2, Şema 2).

Tablo 2 Flynn'in bilgisayar mimarilerini sınıflandırması

komut akışı

Tek Veri Akışı

Çoklu Veri Akışı (MD)

Tek (Tamam)

OKOD (SISD) (tek işlemcili bilgisayarlar)

SIMD (paralel veya ilişkisel işlemcili bilgisayarlar)

Çoklu (MK)

MKOD (MISD) (konveyör ana bilgisayarları)

MKMD (MIMD) (çok işlemcili veya çok makineli kompleksler)

Sınıflandırma, makinelerin yapısı açısından değil, bir bilgisayarda makine talimatlarının verilerle nasıl etkileşime girdiği açısından gerçekleştirilir. Bununla birlikte, Flynn'in sınıflandırması çok geneldir, yani çok işlemcili olanlar hariç tüm paralel bilgisayarları aynı sınıfa yönlendirir ve boru hattı bilgisayar ile MP matrisi arasında herhangi bir fark göstermez.

Mimarilerin diğer sınıflandırmaları da kullanılır, özellikle F. Shar'ın sistematiği, özel yapısal notasyonlar kullanan R. Hockney ve C. Jeshope'un yapısal sistematiği.

Yapısal sistematiği R.Hockney ve C. Jesshope. İlk seviyede, tüm bilgi işlem sistemleri çokluk (nicelik) ilkesine göre tek bilgisayarlı ve çok bilgisayarlı sistemlere ayrılır. Bir bilgisayarlı bilgi işlem sistemleri, sırayla, bir taşıyıcı MP ve birçok MP'li bilgisayarlara bölünmüştür.

Bunlardan ilki geleneksel seri bilgisayarlardır ve ikincisi, ardışık düzene bağlı, ardışık düzene bağlı olmayan ve mikroişlemci matrislerine bölünmüş bir paralel bilgisayar sınıfını oluşturur.

Şema 2. Flynn'in bilgisayar mimarilerini sınıflandırmasının resmi

Paralelliğe sahip ilk sıralı olmayan bilgisayarlardan birine bir örnek, birkaç skaler işlemci temelinde oluşturulmuş CDC-6600 bilgisayarı olabilir.

İşlem hattı bilgisayarları, CDC-7800, FPC AP-120B bilgisayarlar gibi yalnızca skaler yönergeler gerçekleştiren ve vektör yönergelerini yürütenler olarak ikiye ayrılır. Vektör talimatlarını kullanan bilgisayarlar, sırayla, CRAY-1 gibi özel bir boru hattına ve evrensel bir boru hattına sahip bilgisayarlara bölünür - CYBER 205 bilgisayarı.

Makine sınıfı bilgisayarlar bir işlemci matrisi ile matristeki işlemcilerin bağlanabilirliğine göre, kapasitelerine vb. göre sınıflandırılırlar. Bu tipteki ilk makineler ILLIAC-IV, BSP, STA-RAN, ICL DAP, OMEN, vb. idi.

Amaca göre bilgisayarlar iki ana gruba ayrılır: evrensel ve uzmanlaşmış .

Mimarivon Neumann

Evrensel bilgisayarlar geleneksel "von Neumann" mimarisine (veya skaler mimariye) sahiptir.

Program kontrollü bilgisayarların temel ilkeleri.

1946'da, ünlü Amerikalı matematikçi J. von Neumann, zaman içinde tamamlanan ve geliştirilen program kontrollü bilgisayarlar oluşturmak için ilk kez temel ilkeleri formüle etti:

1) program denetimi ilkesi, bir bilgisayarın kaynak verileri belirli bir programa göre otomatik olarak dönüştürebilmesidir;

2) koşullu geçiş ilkesi, ara hesaplamaların veya ilk verilerin sonuçlarına bağlı olarak, bir problemi çözme sürecinde programın belirli bir bölümüne geçiş yapma fırsatı sağlayarak programlara esneklik ve çok yönlülük sağlar;

3) programın kalıcılık (güvenlik) ilkesi, programın bilgisayarın depolama aygıtına yerleştirilmesidir;

4) bellek öğelerine rastgele erişim ilkesi;

5) ikili sayı sistemini kullanma ilkesi;

6) çok düzeyli (hiyerarşik) bellek ilkesi.

Bu ilkeler aynı zamanda modern bilgisayarlar için de geçerlidir, ancak yeni nesillerin ve makine ailelerinin yaratılmasıyla, bunlar tamamlanmıştır ve rafine edilmiştir.

Bir bilgisayarda, başlayarak üçüncü nesil, ayrıca aşağıdaki ilkeler geçerlidir:

- çoklu programlama- RAM'de depolanan programların aynı veya farklı, birbirinden bağımsız farklı komutlarının ortak yürütülmesi;

- bilgi ve yazılım uyumluluğu- farklı aile modelleri üzerinde mevcut programları çalıştırmayı mümkün kılar;

Yüksek teknik standardizasyon seviyesi- tüm makineler için harici ve diğer cihazların ortak isimlendirmesi;

Fırsat çok aşamalı iş organizasyonu bilgisayarların yaratılması ve geliştirilmesi üzerine.

Dördüncü nesil makineler ilkeleri üzerine inşa edilmiştir:

- çoklu işlem- paylaşılan bellekle çalışırken birkaç işlemcinin değiştirilmesi;

organizasyonlar sanal bellek- neredeyse sınırsız miktarda RAM adres alanı sağlamak;

geniş BI kullanımıC ve VLSI ve büyük standartlaştırılmış bloklardan (makromodüller) işlevsel olarak esnek bilgi işlem sistemleri oluşturma fikrine dayanan makromodüler yapı;

Dahili kullanım yüksek seviyeli diller.

Beşinci nesil makineler farklılık:

İşlemcilerin entelektüel seviyesinde önemli bir artış;

Grafiklerin, görüntülerin, belgelerin, programlama dillerinin giriş-çıkış işlevinin daha da geliştirilmesi;

Doğal dil kullanarak etkileşimli bilgi işleme imkanı;

Kendi kendine öğrenme, ilişkisel yapılar oluşturma ve sonuç çıkarma yeteneği.

Program oluşturma sürecindeki programlama dilleri, bir kişi ve bir makine arasında doğal bir arayüz uygulayabilir. Süper üst düzey diller şunları sağlar:

Bilgi işlem sistemi ile yüksek düzeyde kullanıcı etkileşimi zekası, gerekli bilgileri seçmek için veritabanlarına farklı seviyelerde erişim ve alışılmadık görevleri çözmek için gerekli yeni fikirleri elde etmek için bilgi tabanlarına;

Geleneksel bilgisayar mimarisine yönelik mevcut yazılım fonlarının kullanımı.

uzman bilgisayarlar, çözerken performansı büyük ölçüde artırmak için tasarlanmıştır. belirli türlergörevler. Bu, ilk başta paralel hesaplama kullanılarak elde edildi. Zamanla, çeşitli işlevlerin paralel yürütülmesine veya aritmetik cihazların, özellikle de işlemci matrislerinin çoğaltılmasına dayanan makineler ortaya çıktı.

paralel mimariler

Paralellik iki yönde gelişmiştir:

1) işlemcinin hızı ile RAM'e erişim hızı arasındaki farkları azaltarak bilgisayarın yapısını iyileştirmek;

2) belirli bir topolojiye göre birleştirilmiş aynı tipteki bilgisayar cihazlarının tekrarı.

Paralellik, özellikle birkaç hiyerarşik düzeyde uygulandı:

1) görevlerin seviyesi - bir bilgisayarda gerçekleştirilen görevler arasında veya bir görevin aşamaları arasında;

2) program seviyesi - programın bölümleri arasında (örneğin, döngülerin sınırları içinde);

3) komut seviyesi - komut yürütme aşamaları arasında (işlemci talimatları);

4) aritmetik ve bit seviyeleri - bir aritmetik birimin mantık devreleri içindeki bir vektör işleminin elemanları arasında.

Temel yollarparalelliğin tanıtımı bilgisayar mimarisi aşağıdaki gruplara ayrılabilir:

- fonksiyonel işleme- özellikle mantık, toplama, çarpma vb. işlemleri olmak üzere farklı işlevleri yerine getirme yeteneğine sahip birkaç cihaz sağlamak.

- boru hattı işleme- işlemci cihazının verimliliğini artırmak için konveyör prensibinin kullanılması;

- matris işleme- tüm elemanların aynı işlemi, ancak farklı verilerle gerçekleştirdiği ortak bir kontrol sistemine sahip aynı işlemci elemanlarından oluşan bir matrisin kullanılması;

- çoklu işlem- her biri kendi talimatlarını yürüten ve hepsi ortak bir RAM aracılığıyla etkileşime giren birkaç işlemci tarafından gerçekleştirilir.

sinyal ve mtek mikroişlemciler

Sinyal Matrisi İşlemcileri - işlemciler,hangi dayalıyönetim ilkesiakışın kendisi tarafındanveri.

Talimatlar, işlenenleri kullanılabilir hale gelir gelmez yürütülmeye başlar. Bu durumda komşu işlemcilerden veri gelmesi durum değişikliği olarak yorumlanır ve belirli bir eylemi başlatır.

Sinyal işlemcileri, sinyal yayılımı gibi çalışır. Dağıtılmış bir küresel asenkron matris hesaplama sistemidir.

medya sistemi - işlemci ağı,ritmik performans sergileyensistem tarafından hesaplamalar ve veri iletimi.

Her işlemci, veri akışının ağda düzenli olarak depolanması için belirli kısa hesaplamalar yaparak verileri her an düzenli olarak pompalar. Bu işlemcilerin her biri yalnızca bir görev sınıfına odaklanır ve bu nedenle özel bilgisayarlar sınıfına aittir.

Donanım düzeyinde, bu bilgisayarlar, saat senkronizasyonu, artan güç tüketimi, azaltılmış güvenilirlik vb. gibi sorunların oluşumunu önceden belirleyen küresel senkronizasyona sahiptir.

Genel amaçlı akışlı çok işlemcili sistemler için, paylaşılan belleğin kullanımı ve işlemcilerin etkileşimi ile ilgili çatışmalar önemlidir. Bu sorunlar, akış sistemlerini modüler ve yerel olanlarla (sinyal matris işlemcilerinde uygulanan) değiştirerek çözüldü.

Birçok özel bilgisayar kullanır "harvard mimarisi" , özü budur talimat hafıza alanıbellek alanından ayrılmışveri komutları ve verileri aynı anda almak için.

RISC bilgisayar mimarisi

Azaltılmış talimat/komut setine sahip bilgisayarlar ( RISC - azaltılmış komut seti bilgisayarı).

Bilgisayarların temel özellikleriİle RISC-mimari:

1) az sayıda format türüyle sabit uzunluklu komutların kullanılması;

2) komutların basitliği nedeniyle neredeyse tüm komutları yürütmek için aynı donanım aygıtlarını kullanmayı mümkün kılan düzenlilik;

3) çoğu komutun bir makine döngüsünde (döngü) yürütülmesi;

4) kayıtlara odaklanın - uygulaması bellek erişimiyle ilişkili olan yükleme ve yazma komutları dışında tüm veri işlemleri kayıtlarda gerçekleştirilir.

Avantajlar RISC-mimari:

1) donanım uygulamasının karşılaştırılabilir basitliği;

2) komutların hızlı şifresinin çözülmesi;

3) döngünün kısa süresi ve buna bağlı olarak komutların hızlı yürütülmesi;

4) verimli bir komut hattı oluşturma yeteneği.

Kusurlar RISC-mimari:

1) işlenenlerin ve RAM hücrelerinin nispeten düşük döviz kuru;

2) ek yazılım gereksinimleri.

Modern matris ve paralel bilgisayarların performansı oldukça yüksektir ve kayan nokta işlemleri gerçekleştirirken 64 bit işlenenlerde saniyede milyarlarca işleme ulaşır. Uygulanan problemleri çözerken, performansları önemli ölçüde azalır ve modern evrensel bilgisayarların performansına yaklaşır.

Modern ardışık düzen ve matris MPS arasında, Cray MP ve diğerleri gibi süper bilgisayarlardan söz edilmelidir.

Soru. Görev

1. MPU (mikrobilgisayar) mimarisi neyi gösterir ve MP mimarisinden farkı nedir?

2. MPU, mikrobilgisayar ve MPS'nin geliştirilmesinde kullanılan modülerlik, omurga, mikro programlanabilirlik ve yapı düzenliliği ilkelerinin özünü açıklayın.

3. Bilgisayar mimarileri hangi temelde sınıflandırılır?

4. Von Neumann'ın bilgisayar mimarisinin özü nedir?

5. Bilgisayar Harvard mimarisinin özü nedir?

6. Paralelliği bilgisayar mimarisine sokmanın yollarını listeleyin.

7. Özü açıklayın çoklu programlama bilgisayarlar.

8. MP medya ağı ve MP sinyal matrisinin çalışma prensibi nedir, farkları nelerdir?

9. RISC bilgisayar mimarisinin özü nedir, daha önce düşünülen mimarilere kıyasla ne gibi avantajları ve dezavantajları vardır?

Edebiyat.

1. Virobnicheskih sistemlerinde mikroişlemci ve mikroEOM: Posibnik - K.: Vidavnichiy center "Akademiya", 2002. - 368 s. (Gidilen okul).

2. Korneev bilgi işlem sistemleri.- M.: "Bilgi", 199s.

3., Kiselev mikroişlemcileri.- M.: "Bilgi", 199s.