معماری CMAC
شکل
ضمیمه مثالی از معماری CMAC با دو متغیر ورودی و میباشد. هر متغیر ورودی به چندین ناحیه گسسته از فضای ورودی بنام بلوک تقسیم میشود، در مثال ذکرشده پنج بلوک موجود است. اگر هر بلوک به اندازه فاصله کوچکی بنام عنصر (Element) شیفت یابد بلوکهای جدیدی در لایهها یا سطرهای مختلف بوجود میآیند. مثلاً برای بلوکهای A0,B0,C0,D0 مربوط به متغیر ورودی بلوکهای E0,F0,G0,H0,I0 در لایه بعدی و برای بلوکهای A1,B1,C1,D1 بلوکهای E1,F1,G1,H1,I1 برای متغیر ایجاد میشود به همین ترتیب بلوکهای جدیدی مانند J0,K0,L0,M0,N0 در لایهها یا سطرهای دیگر نیز پدید میآیند. مساحتی که توسط نواحی تقسیم شده متغیرهای ورودی بدست میآید بنام فوقمکعب نامیده میشود، به طور مثال فوقمکعبهایC1,B0 و D1,B0. هر فوقمکعب (Hyper Cube) یک سلول حافظه برای ذخیره و بازیابی اطلاعات یا وزنها میباشد.
در مدل CMAC فقط بلوکهای موجود در لایههای متناظر تشکیل فوقمکعب میدهند، به طور مثال امکان وجود فوقمکعب F1,A0 نمیباشد زیرا A0 از لایه اول متغیر ورودی S
1 ولی F1 از لایه دوم S
2 میباشد. برای وضوح بیشتر پارامترهای موجود در شبکه CMAC را میتوان به صورت زیر تعریف نمود:
N
v: تعداد متغیرهای ورودیS
1 ,S
2)
N
b: تعداد بلوکها در یک لایه (پنج عدد)،
N
e: تعداد لایهها یا تعداد سطرها، تعداد عنصرهای کامل که در یک بلوک جای میگیرند (سه عدد)
S:بردار ورودی، به طور مثال {4و7}= S
1 ,S
2 }
A:سلولهای انجمنی و یا فوقمکعبها، به طور مثال {H1,G0 و یا L1,K0،
P: آدرس فوقمکعب از مجموعه A، و
Y:خروجی متناظر با S ، یا مجموع اطلاعات ذخیره شده در فوقمکعبهایی که S را میپوشانند.