Лек­ция № 7: Кэш про­цес­со­ра

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

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

со­от­но­ше­ние ско­ро­сти ра­бо­ты про­цес­со­ров и ско­ро­сти ра­бо­ты опе­ра­тив­ной па­мя­ти

Ри­су­нок 1. Со­от­но­ше­ние ско­ро­сти ра­бо­ты про­цес­со­ров
и ско­ро­сти ра­бо­ты опе­ра­тив­ной па­мя­ти. Ис­точ­ник

Кэш со­сто­ит из соб­ствен­но кэш-па­мя­ти, и кэш-кон­т­рол­ле­ра (ри­су­нок 2). Кэш-кон­т­рол­лер управ­ля­ет кэш-па­мя­тью: за­гру­жа­ет в неё нуж­ные дан­ные из опе­ра­тив­ной па­мя­ти, и воз­вра­ща­ет, ко­гда нуж­но, мо­дифи­ци­ро­ван­ные про­цес­со­ром дан­ные в опе­ра­тив­ную па­мять.

Идея функ­цио­ни­ро­ва­ния кэ­ша

Ри­су­нок 2. Идея функ­цио­ни­ро­ва­ния кэ­ша

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

Обыч­но кэш про­зра­чен для при­клад­ных про­грамм. Это озна­ча­ет, что про­грам­мы ра­бо­та­ют с па­мя­тью, не за­бо­тясь о су­ще­ство­ва­нии кэ­ша: кэш «пе­ре­хва­ты­ват» за­про­сы к опе­ра­тив­ной па­мя­ти, предо­став­ляя про­грам­ме тре­буе­мые дан­ные. Од­на­ко, со­вре­мен­ные си­сте­мы поз­во­ля­ют при­ло­же­нию «под­ска­зать» кэ­шу пра­виль­ное по­ве­де­ние. Это мо­жет быть сде­ла­но, на­при­мер, при по­мо­щи ко­манд пред­ва­ри­тель­ной за­груз­ки дан­ных в кэш и за­пи­си дан­ных в па­мять, ми­нуя кэш. Бы­ва­ют так­же вы­чис­ли­тель­ные си­сте­мы, в ко­то­рых кэш пол­но­стью управ­ля­ет­ся про­грам­мой: про­грам­ма мо­жет не­за­ви­си­мо ра­бо­тать с кэш-па­мя­тью и опе­ра­тив­ной па­мя­тью, и са­ма ре­ша­ет, ка­кие имен­но дан­ные хра­нить в кэ­ше.

Ко­гда про­цес­сор хо­чет про­честь (или за­пи­сать) дан­ные по ка­ко­му-ли­бо ад­ре­су опе­ра­тив­ной па­мя­ти, он пе­ре­да­ёт этот ад­рес в кон­т­рол­лер кэш-па­мя­ти. Кон­т­рол­лер по не­ко­то­ро­му ал­го­рит­му (смот­ри­те да­лее) опре­де­ля­ет, со­дер­жат­ся ли в кэш-па­мя­ти дан­ные, со­от­вет­ствую­щие по­лу­чен­но­му от про­цес­со­ра ад­ре­су. Ес­ли дан­ные най­де­ны (это со­бы­тие на­зы­ва­ет­ся по­па­да­ни­ем в кэш, cache hit), то кэш-кон­т­рол­лер вы­да­ёт тре­буе­мые дан­ные про­цес­со­ру (в слу­чае чте­ния), ли­бо пе­ре­за­пи­сы­ва­ет их по­лу­чен­ны­ми от про­цес­со­ра дан­ны­ми (в слу­чае за­пи­си). Ес­ли же дан­ные не най­де­ны (про­мах кэ­ша, cache miss), то про­из­во­дит­ся об­ра­ще­ние к опе­ра­тив­ной па­мя­ти, и про­цес­сор вы­нуж­ден ждать.

Эф­фек­тив­но­стью кэ­ша на­зы­ва­ет­ся от­но­ше­ние чис­ла по­па­да­ний кэ­ша к об­ще­му ко­ли­че­ству об­ра­ще­ний про­цес­со­ра. Эф­фек­тив­ность, та­ким об­ра­зом, — это чис­ло от 0 до 1. Ну­ле­вая эф­фек­тив­ность озна­ча­ет, что кэш ни­сколь­ко не уско­рил ра­бо­ту си­сте­мы; эф­фек­тив­ность, рав­ная еди­ни­це, озна­ча­ет, что уско­ре­ние мак­си­маль­но, и вре­мя об­ра­ще­ния к па­мя­ти опре­де­ля­ет­ся ско­ро­стью ра­бо­ты кэ­ша, а не ско­ро­стью ра­бо­ты опе­ра­тив­ной па­мя­ти. Эф­фек­тив­ность кэ­ша за­ви­сит от сле­дую­щих фак­то­ров:

  • Объ­ём кэ­ша. Чем боль­ше объ­ём кэ­ша, тем бо́льшую часть тре­буе­мых про­грам­ме дан­ных он мо­жет в се­бе со­дер­жать, тем ре­же бу­дут про­ис­хо­дить об­ра­ще­ния к опе­ра­тив­ной па­мя­ти, и тем вы­ше бу­дет об­щее быст­ро­дей­ствие си­сте­мы.
  • Ал­го­ритм функ­цио­ни­ро­ва­ния кэ­ша. К со­жа­ле­нию, за­ча­стую объ­ё­ма кэш-па­мя­ти не­до­ста­точ­но для то­го, что­бы вме­стить все не­об­хо­ди­мые для вы­чис­ле­ний дан­ные. В этом слу­чае кэш-кон­т­рол­лер дол­жен «ре­шить», ка­кие имен­но дан­ные сле­ду­ет дер­жать в кэ­ше. По­это­му кро­ме объ­ё­ма кэ­ша важ­ным яв­ля­ет­ся ал­го­ритм его функ­цио­ни­ро­ва­ния: кэш, осна­щён­ный хо­ро­шим ал­го­рит­мом, бу­дет го­раз­до эф­фек­тив­нее ис­поль­зо­вать свой объ­ём, хра­ня мень­ше не­нуж­ных дан­ных.
  • Вы­пол­ня­е­мая про­цес­со­ром про­грам­ма. Кэш ока­зы­ва­ет­ся эф­фек­тив­ным по­то­му, что боль­шин­ство ком­пью­тер­ных про­грамм об­ра­ща­ют­ся к па­мя­ти не слу­чай­ным об­ра­зом, а за­ко­но­мер­но. Чем луч­ше кэш-кон­т­рол­лер мо­жет «пред­ска­зать» об­ра­ще­ния при­ло­же­ния к па­мя­ти, тем вы­ше эф­фек­тив­ность.

За­ко­но­мер­ность об­ра­ще­ний про­грам­мы к опе­ра­тив­ной па­мя­ти обыч­но вы­ра­жа­ет­ся в том, что об­ра­ще­ния к па­мя­ти об­ла­да­ют временно́й и про­стран­ствен­ной ло­каль­но­стью:

  • Временна́я ло­каль­ность: ес­ли про­изо­шло об­ра­ще­ние к ячей­ке опе­ра­тив­ной па­мя­ти, то с боль­шой ве­ро­ят­но­стью эта ячей­ка па­мя­ти вско­ре по­на­до­бит­ся сно­ва.
  • Про­стран­ствен­ная ло­каль­ность: ес­ли про­изо­шло об­ра­ще­ние к ячей­ке опе­ра­тив­ной па­мя­ти, то с боль­шой ве­ро­ят­но­стью бу­дет про­из­ве­де­но об­ра­ще­ние к со­сед­ним ячей­кам па­мя­ти.

Ис­поль­зуя эти пред­по­ло­же­ния, кэш-кон­т­рол­лер про­гно­зи­ру­ет об­ра­ще­ния про­цес­со­ра к па­мя­ти, за­ра­нее за­гру­жая в кэш-па­мять не­об­хо­ди­мые дан­ные. Рас­смот­рим не­ко­то­рые ар­хи­тек­ту­ры кэ­шей и ал­го­рит­мы, ко­то­рые в них ис­поль­зу­ют­ся.

Пол­но­стью ас­со­ци­а­тив­ный кэш

Пусть ад­рес бай­та опе­ра­тив­ной па­мя­ти со­сто­ит из 32-х бит (4-х байт). Со­ста­вим кэш из строк: пусть каж­дая стро­ка со­дер­жит (хра­нит) ад­рес и байт, ко­то­рый со­от­вет­ству­ет это­му ад­ре­су в опе­ра­тив­ной па­мя­ти. Хра­ни­мый ад­рес при­ня­то на­зы­вать те­гом (tag), что­бы не пу­тать его с ад­ре­сом (но­ме­ром) строки́ кэ­ша.

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

по­иск эле­мен­та в кэ­ше по его ад­ре­су

Ри­су­нок 3. При­мер по­ис­ка эле­мен­та в кэ­ше по его ад­ре­су.
Дан­ные при­ве­де­ны в ше­ст­на­дца­те­рич­ном ви­де

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

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

Вы­бра­сы­вать нуж­но тот эле­мент, к ко­то­ро­му наи­бо­лее дол­го не бу­дет об­ра­ще­ний. Но, так как кэш не зна­ет, ка­кие об­ра­ще­ния к па­мя­ти бу­дут в бу­ду­щем, он вы­нуж­ден ис­поль­зо­вать ка­кое-то пра­ви­ло, ко­то­рое бы хо­ро­шо «уга­ды­ва­ло» нуж­ный эле­мент. На­при­мер, мож­но вы­бра­сы­вать слу­чай­ную стро­ку из кэ­ша. Но на прак­ти­ке ча­ще все­го вы­бра­сы­ва­ет­ся тот эле­мент, ко­то­рый доль­ше всех не ис­поль­зо­вал­ся. Мо­ти­ва­ция та­кая: «ес­ли стро­ка дол­го не ис­поль­зо­ва­лась, то она, ско­рее все­го, ещё не ско­ро по­на­до­бит­ся вновь».

Но как опре­де­лить, ка­кая стро­ка доль­ше всех не ис­поль­зо­ва­лась? Пусть, на­при­мер, в кэ­ше име­ют­ся 65536 строк. То­гда в каж­дую стро­ку кэ­ша мож­но до­ба­вить двух­бай­то­вое це­лое чис­ло, ко­то­рое бу­дет обо­зна­чать «воз­раст» этой строки́. Стро­ка, к ко­то­рой об­ра­ща­лись наи­бо­лее дав­но, име­ет воз­раст, рав­ный 65535. Стро­ка, к ко­то­рой бы­ло про­из­ве­де­но об­ра­ще­ние в по­след­нюю оче­редь, име­ет воз­раст 0.

до­пол­ни­тель­ные бай­ты для хра­не­ния воз­рас­та стро­ки

Ри­су­нок 4. До­пол­ни­тель­ные бай­ты для хра­не­ния воз­рас­та строки́

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

Те­перь рас­смот­рим про­цесс за­пи­си. Пусть про­цес­сор хо­чет за­пи­сать дан­ные в па­мять. Ско­рее все­го, эти дан­ные вско­ре по­на­до­бят­ся вновь, по­это­му они долж­ны быть за­пи­са­ны в кэш. Но нуж­но ли пи­сать их при этом ещё и в опе­ра­тив­ную па­мять? Ес­ли дан­ные в опе­ра­тив­ную па­мять за­пи­сы­ва­ют­ся од­но­вре­мен­но с за­пи­сью в кэш, то он на­зы­ва­ет­ся кэ­шом со сквоз­ной за­пи­сью.

Од­на­ко, ес­ли за­пись в каж­дую стро­ку кэ­ша про­ис­хо­дит в сред­нем бо­лее од­но­го ра­за до сме­ны этой строки́, то вы­год­на дру­гая стра­те­гия. Очень ча­стый сце­на­рий ра­бо­ты с кон­крет­ным эле­мен­том па­мя­ти — «за­пись, чте­ние, за­пись, чте­ние, ...». Здра­вый смысл под­ска­зы­ва­ет, что за­пись в опе­ра­тив­ную па­мять нуж­но про­из­ве­сти лишь в са­мом кон­це по­доб­ной це­поч­ки. А ко­гда у це­поч­ки опе­ра­ций со стро­кой кэ­ша на­сту­па­ет ко­нец? То­гда, ко­гда эта стро­ка вы­бра­сы­ва­ет­ся из кэ­ша.

Та­ким об­ра­зом, ко­гда стро­ка вы­бра­сы­ва­ет­ся из кэ­ша, она долж­на быть за­пи­са­на в опе­ра­тив­ную па­мять. Но что, ес­ли она не бы­ла из­ме­не­на? То­гда её не нуж­но за­пи­сы­вать. Для то­го, что­бы от­сле­жи­вать из­ме­не­ния строк кэ­ша, снаб­дим каж­дую стро­ку до­пол­ни­тель­ным би­том (ри­су­нок 5), ко­то­рый бу­дет уста­нав­ли­вать­ся в еди­ни­цу при мо­дифи­ка­ции дан­ных в стро­ке. То­гда при вы­тес­не­нии строки́ нуж­но бу­дет про­ве­рить этот бит, и, ес­ли он ра­вен еди­ни­це, про­из­ве­сти за­пись в опе­ра­тив­ную па­мять.

бит мо­дифи­ка­ции стро­ки

Ри­су­нок 5. Бит мо­дифи­ка­ции строки́

Итак, про­цес­сор за­пи­сы­ва­ет дан­ные в па­мять. Ес­ли эти дан­ные есть в кэ­ше, то они пе­ре­за­пи­сы­ва­ют­ся и по­ме­ча­ют­ся, как из­ме­нён­ные. Ес­ли дан­ных в кэ­ше нет, то са­мая ста­рая стро­ка вы­тес­ня­ет­ся, и на её ме­сто за­пи­сы­ва­ют­ся но­вые дан­ные, опять же по­ме­чен­ные как из­ме­нён­ные. Не­до­ста­ток та­ко­го под­хо­да в том, что при про­ма­хе кэ­ша те­перь ча­сто бу­дут про­ис­хо­дить две опе­ра­ции: за­пись дан­ных ста­рой строки́ из кэ­ша в опе­ра­тив­ную па­мять, и за­груз­ка тре­буе­мых дан­ных из па­мя­ти в кэш. По­это­му ино­гда де­ла­ют так, что кэш в сво­бод­ное вре­мя сам пе­ре­пи­сы­ва­ет мо­дифи­ци­ро­ван­ные дан­ные в опе­ра­тив­ную па­мять, об­ну­ляя со­от­вет­ствую­щие би­ты мо­дифи­ка­ции.

Нам оста­лось ре­шить две про­бле­мы:

  1. Наш кэш хо­ро­шо справ­ля­ет­ся с временно́й ло­каль­но­стью об­ра­ще­ния к дан­ным, но он со­вер­шен­но не адап­ти­ро­ван к про­стран­ствен­ной ло­каль­но­сти. Как быть, ес­ли про­цес­сор об­ра­ща­ет­ся к од­но­му бай­ту опе­ра­тив­ной па­мя­ти, за­тем к со­сед­не­му, и так да­лее?
  2. Раз­ра­бо­тан­ный кэш бу­дет иметь очень вы­со­кие на­клад­ные рас­хо­ды при ап­па­рат­ной реа­ли­за­ции. Дей­стви­тель­но, каж­дая стро­ка кэ­ша, по­ми­мо един­ствен­но­го бай­та дан­ных, со­дер­жит: че­ты­ре бай­та ад­ре­са, устрой­ство срав­не­ния ад­ре­сов, два бай­та для хра­не­ния воз­рас­та строки́, устрой­ство для на­ра­щи­ва­ния воз­рас­та, и бит, обо­зна­чаю­щий мо­дифи­ка­цию строки́.

Для ре­ше­ния этих про­блем бу­дем хра­нить в каж­дой стро­ке кэ­ша не один байт дан­ных, а не­сколь­ко байт, иду­щих под­ряд в опе­ра­тив­ной па­мя­ти. Те­гом строки́ бу­дем счи­тать ад­рес пер­во­го со­дер­жа­ще­го­ся в ней бай­та. Рас­смот­рим при­мер, ко­гда в стро­ке кэ­ша хра­нят­ся 16 байт. Для то­го, что­бы дан­ные в стро­ках не мог­ли «пе­ре­кры­вать­ся» (пе­ре­кры­тие дан­ных зна­чи­тель­но услож­нит ло­ги­ку ра­бо­ты), по­тре­бу­ем, что­бы те­ги всех строк бы­ли крат­ны 16. То­гда 4 по­след­них би­та те­га бу­дут рав­ны ну­лю, и их не нуж­но хра­нить. Мы ви­дим, что от­но­ше­ние «по­лез­но­го» объ­ё­ма кэ­ша к об­ще­му зна­чи­тель­но улуч­ши­лось (ри­су­нок 6).

каж­дая стро­ка кэ­ша име­ет не­сколь­ко байт дан­ных

Ри­су­нок 6. Каж­дая стро­ка кэ­ша име­ет не­сколь­ко байт дан­ных

Что­бы ско­рость ра­бо­ты кэ­ша не сни­зи­лась из-за то­го, что при каж­дом про­ма­хе тре­бу­ет­ся за­гру­жать из па­мя­ти сра­зу 16 байт, снаб­дим опе­ра­тив­ную па­мять «ши­ро­кой» ши­ной дан­ных, ко­то­рая бу­дет пе­ре­да­вать в кэш все 16 байт од­но­вре­мен­но.

При по­ис­ке дан­ных в та­ком кэ­ше по ад­ре­су сле­ду­ет взять стар­шие 28 бит ад­ре­са, и по­дать их на срав­не­ние в стро́ки кэ­ша. Ес­ли стро­ка най­де­на, то нуж­но взять из строки́ байт, опре­де­ляе­мый млад­ши­ми че­тырь­мя би­та­ми ад­ре­са. Ес­ли стро­ка не най­де­на, то тре­бу­ет­ся об­ра­ще­ние к опе­ра­тив­ной па­мя­ти.

Те­перь, ес­ли про­цес­сор бу­дет за­пра­ши­вать бай­ты из па­мя­ти под­ряд, то лишь каж­дое 16-е об­ра­ще­ние к па­мя­ти бу­дет при­во­дить к про­ма­ху кэ­ша. Ко­неч­но, есть и не­до­ста­ток: со­сед­ние 15 байт бу­дут за­гру­жать­ся (и за­ни­мать часть кэш-па­мя­ти) да­же то­гда, ко­гда они про­цес­со­ру не по­на­до­бят­ся. Мож­но услож­нить ал­го­ритм, что­бы чте­ние или за­пись дан­ных под­ряд во­об­ще не при­во­ди­ло к про­ма­хам кэ­ша: для это­го нуж­но за­гру­жать в кэш сле­дую­щие 16 байт, ес­ли про­изо­шло об­ра­ще­ние к по­след­не­му бай­ту строки́.

224 отзыва на запись «Лек­ция № 7: Кэш про­цес­со­ра»

Спа­си­бо боль­шое за ма­те­ри­ал.
Спа­си­бо ав­то­ру, ста­тья от­лич­ная!
>Ес­ли дан­ных в кэ­ше нет, то са­мая ста­рая стро­ка вы­тес­ня­ет­ся, и на её ме­сто за­пи­сы­ва­ют­ся но­вые дан­ные, опять же по­ме­чен­ные как из­ме­нён­ные Не по­нят­но — ес­ли ли­ния счи­та­на и уже по­ме­че­на как из­ме­нён­ная — то­гда её на­до бу­дет сбро­сить в па­мять да­же ес­ли про­цес­сор в неё ни­че­го не пи­сал.
А, в смыс­ле, име­лось в ви­ду что не за­гру­же­на из па­мя­ти, а что про­цес­сор в неё за­пи­сал, спа­си­бо, те­перь по­нят­но.
Спа­си­бо за ста­тью, на­пи­са­на яс­но и до­ход­чи­во!
ка­жет­ся опе­чат­ка
в N-ас­со­ци­а­тив­ном кэ­ше под боль­шой кар­тин­кой
«ес­ли тэ­ги не сов­па­ли, …уве­ли­чить воз­рас­та…
за­тем сно­ва уве­ли­чить воз­рас­та «
до­слов­но
ес­ли тэ­ги не сов­па­ли (пе­ре­за­пи­сы­вае­мые дан­ные не про­кэ­ши­ро­ва­ны), то вы­пол­ня­ют­ся сле­дую­щие дей­ствия:
сре­ди че­ты­рёх про­чи­тан­ных строк вы­би­ра­ет­ся для за­ме­ще­ния стро­ка с мак­си­маль­ным воз­рас­том; её воз­раст об­ну­ля­ет­ся, воз­рас­ты осталь­ных трёх строк уве­ли­чи­ва­ют­ся на еди­ни­цу;
….
те­перь тре­буе­мые дан­ные точ­но при­сут­ству­ют в кэ­ше (тэг од­ной из че­ты­рёх строк сов­па­да­ет с тэ­гом, вы­де­лен­ным из ад­ре­са); кон­т­рол­лер уве­ли­чи­ва­ет на еди­ни­цу воз­раст тех строк (сре­ди че­ты­рёх про­чи­тан­ных), воз­раст ко­то­рых мень­ше воз­рас­та строки́ с нуж­ны­ми дан­ны­ми, а воз­раст строки́ с нуж­ны­ми дан­ны­ми об­ну­ля­ет; P.S. хо­ро­шая стать­ся
P.P.S. ес­ли на­ве­сти кур­сор на боль­шую кар­тин­ку, то пи­шет «При-мер по-ис-ка дан-ных…»
Спа­си­бо. Ис­пра­вил. Не ду­мал, что кто-ни­будь бу­дет так вни­ма­тель­но вчи­ты­вать­ся.
Огром­ное спа­си­бо Ав­то­ру, очень по­лез­ная ста­тья.
top cash advance in 27410 payday loans
unsecured personal loan options
Take a look at my zooppa buy cialis online without a prescription.
http://canadianrxpharmacyonline.com/ online pharmacy no prescription
http://doxycyclinebrandname.accountant/#738 doryx 200 mg is doxycycline strong malaria doxycycline doxycycline shelf life doxycycline minocycline
http://generic-name-for-keflex.accountant/#448 what is cephalexin used to treat cephalexin for humans cephalexin pregnancy
http://lisinoprilhydrochlorothiazide2016.accountant/#407 drug lisinopril lisinopril 20 mg lisinopril and potassium prinivil medication lisinopril hctz side effects
http://cephalexin-cost.accountant doxycycline calcium doryx price
Вы­воз му­со­ра в СПб http://s-musor.ru/page-165749.html Му­сор пух­то
Вы­воз ме­бе­ли из квар­ти­ры на ути­ли­за­цию http://kudamusor.ru/page-429333.html Разо­брать ста­рый дом
Де­мон­таж до­ма сто­и­мость http://nanomusor.ru/page-42532.html Стро­и­тель­ные ра­бо­ты де­мон­таж
Сто­и­мость вы­но­са стро­и­тель­но­го му­со­ра из квар­ти­ры http://nanomusor.ru/page-753414.html Сколь­ко сто­ит вы­нос му­со­ра
Вы­воз тон­ны му­со­ра http://nanomusor.ru/page-592475.html Пла­сти­ко­вые кон­тей­не­ры для му­со­ра
Вы­воз ме­бе­ли де­ше­во http://nanomusor.ru/page-853681.html Вы­воз не­га­ба­рит­но­го му­со­ра
Арен­да вы­воз му­со­ра http://mega-musor.ru/page-202109.html Арен­да пух­то 27
Сло­мать ста­рый дом и вы­вез­ти му­сор http://nanomusor.ru/page-945105.html Снос зда­ний СПб
Слом и вы­воз му­со­ра http://s-musor.ru/page-132237.html Слом до­ма и вы­воз му­со­ра це­на
Вы­воз бы­то­во­го му­со­ра це­на http://s-musor.ru/page-510341.html Вы­воз му­со­ра це­на за м3
I don’t usually comment but I gotta admit thanks for the post on this great one
Rattling great visual appeal on this web site, I’d value it 10.
I really like your blog.. very nice colors & theme. Did you create this website yourself or did you hire
someone to do it for you? Plz answer back as I’m
looking to create my own blog and would like to find out where u got this from.
appreciate it
Generally I do not learn article on blogs, but I would like to say that this write-up very compelled me to try and do it!
Your writing style has been surprised me. Thank you, quite great post.
I absolutely love your blog and find a lot of your post’s to be exactly
I’m looking for. can you offer guest writers to
write content for yourself? I wouldn’t mind publishing a post or
elaborating on most of the subjects you write concerning here.
Again, awesome website!
I’m no longer certain the place you’re getting your information,
but good topic. I needs to spend a while studying more or understanding more.
Thanks for great info I was searching for this information for my mission.
Fabulous, what a website it is! This website provides useful data to us, keep it up.
As the admin of this site is working, no doubt very
quickly it will be famous, due to its feature contents.
Do you have a spam problem on this website; I also am a
blogger, and I was wondering your situation; we have developed some nice methods and we are
looking to swap methods with other folks, please shoot me an e-mail if interested.
I enjoy reading through a post that can make people think. Also, thanks for allowing me to comment!
I enjoy what you guys are usually up too. Such clever work and coverage!
Keep up the wonderful works guys I’ve you guys to my blogroll.
This page certainly has all of the info I wanted about this
subject and didn’t know who to ask.
This text is priceless. Where can I find out more?
Ahaa, its fastidious conversation on the topic of this article here at this web site, I have read all that, so now me also commenting at this place.
I want to to thank you for this very good read!! I absolutely enjoyed
every little bit of it. I have got you book-marked to
look at new things you post…
Hey There. I found your blog using msn. This is a very neatly written article.
I’ll be sure to bookmark it and come back to learn more of your helpful information. Thanks for the post.
I will certainly comeback.
What’s up to every body, it’s my first visit of this website;
this blog carries remarkable and actually fine material in favor of visitors.
Definitely consider that which you stated. Your favorite justification appeared to be on the web the
easiest thing to have in mind of. I say to you, I certainly get irked while other folks think about issues that they just do not realize
about. You controlled to hit the nail upon the
highest and also outlined out the entire thing with no need side effect , people could take a signal.
Will probably be back to get more. Thanks
Informative article, totally what I needed.
Very good information. Lucky me I came across your site by
accident (stumbleupon). I’ve saved as a favorite for later!
I’m gone to convey my little brother, that he should also pay a
quick visit this blog on regular basis to take updated from most up-to-date gossip.
Wonderful beat ! I wish to apprentice even as you amend your
web site, how can i subscribe for a blog web site?
The account helped me a applicable deal. I were a little bit
acquainted of this your broadcast offered vibrant clear idea
We’re a group of volunteers and starting a new scheme in our
community. Your web site provided us with helpful info
to work on. You’ve done an impressive task and our entire group will be grateful
to you.
My partner and I stumbled over here different page and thought I may as well check things out.
I like what I see so now i am following you.
Look forward to looking into your web page for a second time.
I enjoy what you guys are usually up too. Such clever
work and coverage! Keep up the great works guys I’ve incorporated you guys
to my blogroll.
Hi there, i read your blog occasionally and
i own a similar one and i was just wondering if you get
a lot of spam feedback? If so how do you prevent it,
any plugin or anything you can advise? I get so much lately it’s
driving me crazy so any help is very much appreciated.
With havin so much content do you ever run into
any problems of plagorism or copyright violation? My blog has a lot of completely unique content I’ve either created myself or outsourced but it
appears a lot of it is popping it up all over the web without my authorization. Do you know any solutions
to help protect against content from being ripped off? I’d
certainly appreciate it.
Great blog here! Additionally your web site rather a lot
up very fast! What web host are you the use of?
Can I get your associate hyperlink in your
host? I want my site loaded up as quickly as yours lol
Thanks for the auspicious writeup. It in fact was a leisure account it.
Glance advanced to far brought agreeable from you!
However, how could we communicate?
I like the valuable information you provide in your articles.
I’ll bookmark your weblog and check again here frequently.
I’m quite certain I will learn many new stuff right here!
Good luck for the next!
In fact no matter if someone doesn’t know afterward its up to other people that they will help, so here
it takes place.
Good post. I learn something totally new
and challenging on sites I stumbleupon everyday. It will always be useful to read articles from
other authors and use something from other sites.
I every time emailed this blog post page to all my associates,
since if like to read it next my friends will too. Have a look at my website silk lash extensions wholesale (cogpartners.com)
I’m amazed, I have to admit. Rarely do I come across a blog that’s both equally educative and amusing, and let me tell you,
you’ve hit the nail on the head. The problem is something which not enough folks are speaking intelligently about.
I’m very happy I came across this in my search for something regarding this.
It’s very trouble-free to find out any matter on web as compared to books, as I found this paragraph
at this site.
Good info. Lucky me I recently found your
blog by accident (stumbleupon). I have book-marked it for later! Feel free to visit my blog silk lash extensions perth
I’m gone to convey my little brother, that he should also pay a visit this website on regular basis to
obtain updated from latest information.
I’m not sure exactly why but this weblog is loading very slow for me.
Is anyone else having this issue or is it a issue on my end?
I’ll check back later on and see if the problem still exists.
Awesome blog! Is your theme custom made or did you download it from somewhere? A theme like yours with a few simple tweeks would really make my
blog jump out. Please let me know where you got your design. Kudos Visit my web-site latest game trade (Brayden)
Hi superb website! Does running a blog such as this require a large amount of work? I have absolutely no knowledge of coding however I was hoping to start my own blog in the near future.
Anyways, should you have any suggestions or tips for new blog
owners please share. I understand this is off topic
however I just needed to ask. Thank you! Look into my homepage major water damage (Claudette)
Every weekend i used to visit this web site, as i wish
for enjoyment, as this this web site conations really pleasant funny stuff too. my page :: madden mobile coins buy reddit
What’s up everyone, it’s my first go to see at this website,
and paragraph is in fact fruitful designed for me, keep up posting such articles
or reviews. Also visit my webpage silk lash extensions perth — Denese -
Spot on with this write-up, I actually believe that this website needs a great deal more attention.
I’ll probably be back again to read more, thanks
for the advice! my site — mink strip lashes review
Howdy just wanted to give you a quick heads up. The words in your post seem to be running off the screen in Ie.
I’m not sure if this is a formatting issue or something to do with internet
browser compatibility but I thought I’d post to let you know. The style and design look great though! Hope you get the issue solved soon. Kudos Here is my homepage … cs go skins for sale ebay
Thanks very nice blog! My homepage :: madden mobile coin selling
(Kathryn)
Hi there, I would like to subscribe for this webpage to get most up-to-date updates, so where can i do it
please assist. Also visit my site: cs go knife skins for sale
I am now not positive where you are getting your info, but great topic.
I needs to spend some time learning more or understanding more. Thanks for great information I was looking for this information for
my mission. my site — cs go skins steam workshop
Hello! Quick question that’s entirely off topic. Do you know how
to make your site mobile friendly? My weblog looks
weird when viewing from my iphone4. I’m trying to find a theme or plugin that might be able to resolve this issue.
If you have any suggestions, please share. With thanks! Look into my web site; fifa coins 17 pc
Howdy! This is my first visit to your blog! We are a collection of volunteers
and starting a new project in a community in the same niche.
Your blog provided us valuable information to work on. You have
done a wonderful job!
Awesome blog! Is your theme custom made or did you download it from somewhere?
A design like yours with a few simple tweeks would really
make my blog shine. Please let me know where you got
your theme. Cheers Feel free to visit my page: silk lash extensions perth
Hi there, just became aware of your blog through Google,
and found that it’s truly informative. I am gonna watch out
for brussels. I will be grateful if you continue this in future.
Lots of people will be benefited from your writing. Cheers! Review my web-site … fifa 17 coins reddit, http://www.qpcom.net,
Hello are using WordPress for your site platform? I’m new to the blog world
but I’m trying to get started and create my own. Do you require
any html coding expertise to make your own blog? Any help would
be really appreciated! Here is my website: mink lashes cruel
Fastidious answers in return of this issue with firm arguments and explaining all concerning that. my web page — cs go awp skins for sale
Hi there, I wish for to subscribe for this blog
to get most up-to-date updates, thus where can i do it please assist. Here is my web blog fifa 17 coins free xbox 360 (http://www.trasportotorribianche.it/)
Hi there, I want to subscribe for this web site to take latest updates, therefore where can i do it please
help out. My blog post mink lash extensions wholesale
In fact when someone doesn’t know after that its up to other users that they will help,
so here it happens. my web-site :: fifacoinsbuy.com review
I really love your blog.. Pleasant colors & theme. Did you develop this site
yourself? Please reply back as I’m trying to create my very own website and want to know where you got this
from or what the theme is named. Many thanks! My blog post — mink strip lashes uk
As the admin of this site is working, no doubt very rapidly it
will be famous, due to its feature contents. Stop by my web page :: fifa coins for sale
These are in fact impressive ideas in regarding blogging. You have touched some pleasant things here. Any way keep up wrinting. Here is my web site cs go skin betting websites
Thanks for finally talking about > Лек­ция № 7:
Кэш про­цес­со­ра | Image Processing < Loved it! my web page: faux mink lashes for sale; Leah,
Greetings! Very useful advice in this particular article! It’s the little changes which will make the biggest changes.
Thanks a lot for sharing! My webpage :: cs go weapon skins for sale (mikaelsiebenrock.com)
Good article. I’m going through a few of these issues as well..
all the time i used to read smaller content which also clear their motive, and that is also happening
with this article which I am reading now.
It’s hard to find educated people about this subject, but you
sound like you know what you’re talking about! Thanks
Normally I don’t learn article on blogs, however I would like to say that this write-up very forced me to
check out and do it! Your writing taste has been surprised me.
Thank you, quite great post. my page — fifa coins zone legit
Excellent article. I absolutely appreciate this website.
Stick with it! Here is my web site fifa 17 coins ps4 review (Kelli)
Thank you, I have just been looking for information about this topic for
a long time and yours is the best I’ve discovered till now.
However, what in regards to the conclusion? Are you sure concerning the source? my website; mink lashes sephora — privatelabel.cooperfarms.com,
Hurrah, that’s what I was searching for, what a information! existing here at this web site, thanks admin of this
web site.
Your style is very unique in comparison to other people I have read stuff
from. I appreciate you for posting when you have the opportunity, Guess I will just bookmark this web site.
Howdy! This post could not be written any better! Going through this post reminds me of my previous roommate!
He always kept preaching about this. I am going to forward this
post to him. Pretty sure he’ll have a good read.
Thank you for sharing!
Pretty nice post. I just stumbled upon your blog and wanted to say
that I have really enjoyed browsing your blog posts.
In any case I will be subscribing to your rss feed and I hope you write again soon!
Greetings from Los angeles! I’m bored to tears at
work so I decided to browse your blog on my iphone during lunch break. I love the information you provide here and can’t wait to take a look
when I get home. I’m amazed at how quick your blog loaded on my phone ..
I’m not even using WIFI, just 3G .. Anyways, superb blog!
Hi everybody, here every one is sharing such experience, thus
it’s nice to read this website, and I used to pay a quick
visit this weblog all the time. Feel free to visit my web site … csgo skins price
Hello just wanted to give you a brief heads up and let you know a few of
the images aren’t loading correctly. I’m not sure why but I think its a linking issue. I’ve tried it in two different browsers and both show the same outcome. Here is my web-site; madden mobile coins cheap (qpcom.com)
hello!,I love your writing very so much! proportion we
communicate more approximately your article on AOL? I need a specialist in this house to resolve my problem.
May be that is you! Looking ahead to look you. My weblog — madden mobile coins for sale reddit
Heya i’m for the first time here. I came across this board and I to find It really helpful & it helped me out
much. I am hoping to provide one thing again and aid
others like you helped me. Here is my site: silk lash extensions london
That is really fascinating, You are a very professional blogger.
I have joined your feed and look ahead to seeking more of your great post.
Additionally, I have shared your site in my social networks my site … mink strip lashes uk
Heya i’m for the first time here. I came across this board and
I find It really useful & it helped me out
much. I hope to give something back and help others like you
helped me. Also visit my page: csgo skins free 2017,
Deloris,
I’m gone to inform my little brother, that he should also visit this website
on regular basis to obtain updated from most up-to-date news update.
What i don’t understood is in reality how you are not actually
much more smartly-liked than you might be right now.
You are very intelligent. You know therefore significantly on the subject of this matter,
produced me personally believe it from so many numerous angles.
Its like women and men don’t seem to be interested except it’s something to accomplish with Lady
gaga! Your personal stuffs excellent. Always take care of it up!
Can I just say what a relief to discover somebody who truly understands what they are talking about on the net. You definitely realize how to bring an issue to light and make it
important. More and more people really need to read this and
understand this side of your story. I was surprised that you are
not more popular because you surely have the gift. Feel free to surf to my weblog; siberian mink lashes cruelty — http://www.atek.co.kr,
I’m not that much of a online reader to be honest but your
blogs really nice, keep it up! I’ll go ahead and bookmark your site to come back in the future.
Cheers Review my page :: csgo skins betting sites
I couldn’t resist commenting. Perfectly written! my website … madden mobile coin glitch no survey no download
Howdy! I realize this is somewhat off-topic but I had to ask.
Does managing a well-established website such as
yours require a massive amount work? I am completely new to blogging
but I do write in my journal daily. I’d like to start a blog so I will be able
to share my personal experience and feelings online.
Please let me know if you have any suggestions or tips for new
aspiring blog owners. Appreciate it! my website :: buy cheap nba live coins (art.i.sanj.bhb@payapps.co.kr)
Fantastic items from you, man. I have keep in mind your stuff prior to and you are simply too wonderful.
I actually like what you’ve acquired here, really like what
you’re saying and the way in which by which you assert it.
You are making it entertaining and you still care for to
stay it sensible. I can not wait to read much more
from you. That is really a wonderful site. Take a look at my website; siberian mink lashes nyc
What’s up, yup this post is actually nice and I have learned lot of things from it on the topic of blogging.
thanks. my blog; csgo skins websites
I have been exploring for a bit for any high-quality articles or weblog posts
on this sort of space . Exploring in Yahoo I finally stumbled upon this
website. Studying this info So i am glad to convey that
I have a very just right uncanny feeling I came upon exactly
what I needed. I such a lot indisputably will make
certain to do not fail to remember this web site and give it a look on a constant basis. my web site: groupon mink lashes nyc (Thanh)
You are so cool! I don’t believe I’ve read through anything like that before. So good to discover another person with genuine
thoughts on this issue. Really.. many thanks for starting this up.
This website is one thing that is needed on the web,
someone with a bit of originality! Also visit my blog — nba mobile coins buy
It’s not my first time to go to see this web site, i am browsing this
web page dailly and get pleasant data from here everyday. Here is my weblog csgo skins free 2017
If some one wants to be updated with most up-to-date
technologies after that he must be pay a quick visit this
web page and be up to date everyday. Also visit my blog … csgo skins free spin
It’s in fact very complex in this busy life to listen news on TV,
thus I only use internet for that purpose, and obtain the most recent
information. Also visit my web blog :: fifa coins zone youtube
Way cool! Some very valid points! I appreciate you writing this write-up and the
rest of the website is also very good. My web-site cs go skins for sale ebay
It is not my first time to pay a visit this web page,
i am browsing this website dailly and get pleasant information from here
everyday. Also visit my site; fifa 17 coins generator xbox one
I’m truly enjoying the design and layout of your site. It’s a very easy
on the eyes which makes it much more pleasant for me to come here and visit more often. Did
you hire out a developer to create your theme? Excellent work! Here is my webpage — csgo skins free 2017 (http://www.bizfit.com.au)
Informative article, just what I was looking for. my blog post … mink lashes near me
This is my first time pay a quick visit at here and i am
genuinely happy to read all at alone place. My web page … silk lash extensions sydney
Very good blog! Do you have any recommendations for aspiring writers?
I’m hoping to start my own blog soon but I’m a little lost on everything.
Would you suggest starting with a free platform like WordPress or go for a
paid option? There are so many options out there that I’m completely overwhelmed ..
Any ideas? Bless you! My page: silk lashes extension
The other day, while I was at work, my sister stole my apple ipad and tested to see if it can survive a thirty foot drop, just so she can be a youtube sensation. My iPad is now broken and she has
83 views. I know this is totally off topic but I had to share it with someone! Take a look at my homepage madden mobile coins free
Oh my goodness! Amazing article dude! Thanks, However I am going through troubles with your RSS.
I don’t know why I am unable to join it. Is there anybody else having the same
RSS issues? Anyone that knows the answer will you kindly respond?
Thanks!! Stop by my weblog :: nba mobile coins for free
Wonderful blog! I found it while surfing
around on Yahoo News. Do you have any suggestions
on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there!
Thanks Here is my page :: csgo skins betting
Link exchange is nothing else but it is just placing the other person’s web site link on your page at suitable place
and other person will also do same in favor
of you. My page best cs go skin betting (Mariana)
It’s very trouble-free to find out any matter on web as compared to textbooks, as I found this paragraph at this site. My blog … nba live coins reddit
I think this is one of the most vital information for me. And i am glad reading your article. But want to remark on some general things, The site style is wonderful, the articles
is really excellent : D. Good job, cheers Feel free to visit my site … inappropriate singing (http://www.freebetsguide.co.uk)
Good day! I know this is kind of off topic but I was wondering if you knew where I
could locate a captcha plugin for my comment form?
I’m using the same blog platform as yours and I’m having difficulty finding one? Thanks a lot! Also visit my weblog mink eyelash extensions kitchener, Mitzi,
Your style is so unique compared to other folks I’ve read stuff from. I appreciate you for posting when you have the opportunity,
Guess I will just bookmark this site. Here is my website :: 1 — Lee,
Great post. I used to be checking constantly this weblog and I am
inspired! Very useful information specially the ultimate section I maintain such info a lot.
I used to be looking for this certain information for a very lengthy
time. Thanks and good luck.
This site was… how do I say it? Relevant!! Finally I have found something which helped
me. Thanks a lot! Feel free to visit my web blog :: nba live coins and cash (Phil)
I like the valuable information you provide in your articles.
I will bookmark your blog and check once more here
regularly. I’m reasonably sure I will be told a lot of new
stuff proper right here! Good luck for the following! Also visit my weblog — zaraafra12.spruz.com; http://jub.se/,
Right away I am going away to do my breakfast, once having my breakfast coming over again to read other news. my site — silk lashes wholesale (winxnetcommunity.com)
My partner and I stumbled over here different
page and thought I might check things out. I like what I see
so now i am following you. Look forward to checking out your web page yet again. Here is my webpage — mink lash extensions dublin (http://ondernemerskringmiddengelderland.com/)
Excellent blog right here! Also your site rather a lot up very fast!
What web host are you using? Can I get your associate hyperlink for your host?
I wish my website loaded up as quickly as yours lol Here is my blog … best keyboard (http://www.tadavis.com/ActivityFeed/MyProfile/tabid/61/UserId/106940/Default.aspx)
Thanks , I’ve recently been looking for info about this subject for a long time
and yours is the best I have found out so far.
However, what in regards to the bottom line?
Are you sure concerning the source? my website: synthetic mink lashes for sale
Hey There. I found your blog using msn. This is an extremely
well written article. I will make sure to bookmark it and come back
to read more of your useful information. Thanks for the post.
I’ll certainly return. Here is my web site — mink lashes amazon
Highly energetic post, I liked that a lot. Will there be a part 2? Here is my homepage; nba live coins ios
Every weekend i used to pay a visit this web site, because i want enjoyment, as this this site conations truly pleasant funny stuff too. Stop by my homepage — cs go skins trade up contract (bacninhtv.vn)
Hello there, just became alert to your blog through Google, and found that it’s truly
informative. I am going to watch out for brussels.
I will appreciate if you continue this in future. Numerous people will be benefited from your
writing. Cheers! My site … cs go skins trade site (http://www.partypillsforum.com)
Good way of describing, and good article to take data about
my presentation topic, which i am going to present in academy. My web-site awd-it — computer components (http://rootofvein.com/board/383432)
Thanks for the auspicious writeup. It actually used to be
a enjoyment account it. Glance advanced to more brought agreeable from you!
By the way, how can we keep in touch? Also visit my web page … nba live coins cheap
Hi there! I just want to give you a huge thumbs up for your excellent information you have here on this
post. I’ll be returning to your site for more soon. Feel free to visit my site madden 25 (Krystal)
Hello, after reading this amazing article i
am too delighted to share my know-how here with mates. Also visit my web-site … fifa 17 coins free without human verification (Darren)
I’m really loving the theme/design of your weblog. Do you ever
run into any browser compatibility problems? A few of my blog visitors have
complained about my site not operating correctly in Explorer but looks great in Chrome.
Do you have any ideas to help fix this issue? Here is my blog post: mink lash strips wholesale — http://www.hensonproperties.com -
I really like your blog.. very nice colors & theme.
Did you make this website yourself or did you hire someone to
do it for you? Plz reply as I’m looking to create
my own blog and would like to know where u got this from.
appreciate it my web page: quality sports; Corine,
Every weekend i used to visit this website, as i wish for enjoyment, since this this website conations genuinely good
funny stuff too. Also visit my web blog mink eyelash extensions nyc
Excellent beat ! I wish to apprentice while you amend your site, how can i subscribe for a blog website? The account aided me a acceptable deal. I had been tiny bit acquainted of this your broadcast provided bright
clear concept Also visit my web page mink eyelash extensions near me
You are so awesome! I don’t think I’ve read through anything like that before.
So good to find someone with original thoughts on this topic.
Seriously.. thanks for starting this up. This web site is one thing that
is needed on the internet, someone with a bit of originality! Also visit my webpage … john madden (Craig)
Sweet blog! I found it while browsing on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there!
Thanks Feel free to surf to my page — csgo skins steam
I always spent my half an hour to read this webpage’s
content all the time along with a mug of coffee. Here is my webpage; cs go skins price rising (http://www.cursosiclatam.com)
Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my
blog that automatically tweet my newest twitter updates.
I’ve been looking for a plug-in like this for quite some time and was hoping
maybe you would have some experience with something like
this. Please let me know if you run into anything. I truly enjoy reading your blog
and I look forward to your new updates. Also visit my weblog siberian mink lashes cruelty
This is the right site for anybody who would like to find out about this topic. You know a whole lot its almost hard to argue with you (not that I actually will need to…HaHa).
You definitely put a fresh spin on a subject which has
been discussed for decades. Great stuff, just excellent! Feel free to surf to my site :: faux mink lashes nyc (Dorothy)
I have read so many articles or reviews about the blogger lovers however this article is in fact a pleasant paragraph, keep it up. Feel free to surf to my blog post; mink eyelash extensions cruelty free
If you would like to improve your experience only keep visiting this web site and be updated with the most
up-to-date information posted here. Here is my site; csgo skin betting sites
Everything said was actually very logical. But, what about this?
suppose you added a little content? I mean, I don’t wish to tell you how to run your website, however what if you added a title that makes people want more?
I mean Лек­ция № 7: Кэш про­цес­со­ра | Image Processing
is kinda vanilla. You could glance at Yahoo’s front page and watch how they write news headlines to grab viewers
to click. You might add a related video or a pic or two to get
readers excited about everything’ve written. In my opinion, it could bring your
posts a little livelier. Have a look at my homepage: fifacoinsbuy.com review
There’s definately a great deal to find out about this issue.
I like all of the points you’ve made. Also visit my web blog :: csgo skins free download (Rosella)
It’s impressive that you are getting thoughts from this article as well as from
our dialogue made at this place. Also visit my webpage :: mink lash strips wholesale — Jake,
Attractive section of content. I just stumbled upon your weblog
and in accession capital to assert that I acquire in fact enjoyed account your blog posts.
Any way I’ll be subscribing to your feeds and
even I achievement you access consistently quickly. Here is my homepage cs go skins steam free, benlambpoker.com,
An impressive share! I have just forwarded this onto a co-worker who had been conducting a little research
on this. And he actually bought me dinner simply because
I stumbled upon it for him… lol. So let me reword this….
Thank YOU for the meal!! But yeah, thanx for
spending some time to discuss this subject here on your
website. My webpage madden 17 coins ps4 (Hassie)
Appreciate the recommendation. Will try it out. my web site :: madden nfl mobile free coins no survey
Hey there, You’ve done a fantastic job. I will certainly digg
it and personally recommend to my friends. I’m confident they’ll be benefited
from this web site. Here is my web site: cs go skins price guide
I have fun with, lead to I found just what I used to be having a
look for. You’ve ended my four day lengthy hunt!
God Bless you man. Have a nice day. Bye Also visit my blog — mink lashes nyc
Awesome blog! Is your theme custom made or did you download it from somewhere?
A theme like yours with a few simple adjustements would really make my
blog jump out. Please let me know where you got your design. With thanks Here is my web blog nba live coins generator (Mahalia)
Thanks for any other informative site. The place else could I get that type of information written in such a perfect method?
I’ve a challenge that I’m simply now operating on, and I’ve been at the
glance out for such information. My web blog: silk lash extensions review (Julie)
My family all the time say that I am wasting my time here at web,
but I know I am getting experience all the time by reading thes pleasant articles or reviews. my weblog: csgo skins for sale paypal
My brother recommended I might like this website. He was entirely
right. This post actually made my day. You can not imagine simply how much
time I had spent for this information! Thanks!
Everything is very open with a precise explanation of the challenges. It was definitely informative. Your website is very useful.
Thank you for sharing! my weblog; nba live coins ios (Theodore)
Someone essentially assist to make seriously articles I might state.
That is the first time I frequented your web page and thus far?
I surprised with the research you made to make this actual publish incredible.
Fantastic process! Feel free to surf to my homepage :: faux mink eyelash
extensions for sale (Margarita)
I visited various blogs except the audio quality
for audio songs existing at this site is in fact
marvelous. Feel free to surf to my page nba live coins ios
Have you ever considered publishing an e-book or guest authoring
on other sites? I have a blog centered on the same topics you discuss and would really like to have you share
some stories/information. I know my viewers would enjoy your work.
If you are even remotely interested, feel free to send me
an e-mail. Feel free to visit my web page … fifa 17 coins ps4 mmoga
Hello colleagues, how is all, and what you want to say
concerning this post, in my view its genuinely awesome in support of
me.
Definitely imagine that that you said. Your
favorite reason appeared to be at the web the simplest factor to take into accout of.
I say to you, I definitely get irked even as other people think about concerns that they just do not recognise about.
You controlled to hit the nail upon the top and also defined out the whole thing without having side
effect , other folks can take a signal. Will likely be again to get more.
Thank you My web site csgo skins for sale steam
Great article, exactly what I wanted to find. Feel free to visit my page fifa coins zone facebook
You’re so cool! I do not think I have read through anything like that before.
So good to discover another person with unique thoughts on this topic.
Really.. thank you for starting this up. This website is one thing that’s needed
on the internet, someone with a little originality! My site :: madden nfl mobile coins for sale
- Myron -
I am curious to find out what blog system you have been using? I’m having some small security problems with
my latest website and I would like to find
something more risk-free. Do you have any solutions? Here is my web-site: cheap pubg skins
Hi there, all is going nicely here and ofcourse every one is sharing data,
that’s in fact excellent, keep up writing. Also visit my blog mink eyelash extensions cruelty free — Malinda -
I’m gone to convey my little brother, that he should also pay a quick visit this blog on regular basis to get updated from latest
information. my webpage :: mink lashes starter kit (Victorina)
I loved as much as you’ll receive carried out right here.
The sketch is tasteful, your authored subject matter stylish. nonetheless, you command get got an shakiness over that you
wish be delivering the following. unwell unquestionably come more formerly again as
exactly the same nearly a lot often inside case
you shield this hike. Feel free to visit my weblog :: nhl 17 coins
It’s in point of fact a nice and useful piece of information. I
am glad that you just shared this helpful info with us.
Please keep us informed like this. Thanks for sharing. Feel free to surf to my web-site; cheap hut 17 coins
Attractive section of content. I just stumbled upon your web
site and in accession capital to assert that I acquire in fact enjoyed account your
blog posts. Any way I will be subscribing to your augment and even I achievement
you access consistently quickly. Also visit my weblog — nhl coins (Bob)
Everything posted was very reasonable. However, what about
this? suppose you were to write a awesome post title?
I mean, I don’t wish to tell you how to run your website,
however suppose you added something to possibly get a person’s
attention? I mean Лек­ция № 7: Кэш про­цес­со­ра | Image
Processing is a little plain. You ought to look at Yahoo’s front page
and see how they write article titles to get viewers to click.
You might add a video or a related pic or two to get readers excited about everything’ve got to say. In my opinion, it might make your blog a little bit more interesting. My web blog … cheap csgo skins
What a material of un-ambiguity and preserveness of valuable
knowledge regarding unexpected emotions. Feel free to surf to my blog post buy cheap nba live coins
Hey there! Quick question that’s completely off topic. Do you
know how to make your site mobile friendly? My web site
looks weird when browsing from my iphone.
I’m trying to find a theme or plugin that might be able to fix this issue. If you have any recommendations, please share.
Thanks!
Thanks , I’ve just been searching for info about this subject for
a while and yours is the best I’ve came upon so far.
But, what concerning the bottom line? Are you certain about the source?
I just like the valuable info you provide for your articles. I will bookmark your blog and test once more here regularly.
I’m quite certain I’ll be informed lots of new stuff right right here!
Best of luck for the next! Check out my blog: buy madden 17 coins
If some one desires expert view on the topic of blogging and site-building afterward i advise him/her
to go to see this web site, Keep up the nice job. Also visit my homepage: buy nba mobile coins
This post will help the internet people for creating new weblog or even a blog from start to end. Also visit my web-site: mink lashes
I for all time emailed this webpage post page to all my contacts,
because if like to read it afterward my contacts will too. My blog; cheap hut 17 coins
Oh my goodness! Incredible article dude! Thanks, However I am
going through difficulties with your RSS. I don’t understand the reason why I can’t join it.
Is there anybody else having identical RSS problems? Anybody who knows the answer can you kindly respond? Thanx!! Stop by my web page cheap csgo skins
Just desire to say your article is as astonishing.
The clarity in your post is just excellent and i could assume you are an expert on this subject.
Well with your permission let me to grab your RSS feed to keep up to date
with forthcoming post. Thanks a million and please keep up the rewarding work. my web page :: cheap nba live coins (Rosalind)
My relatives all the time say that I am killing my time here at web,
except I know I am getting know-how all the time by reading
thes fastidious articles or reviews. my web-site :: buy h1z1 skins
Thank you for the auspicious writeup. It in fact was a amusement
account it. Look advanced to far added agreeable from you!
However, how can we communicate? Also visit my site … cheap pubg skins
Wow, wonderful blog layout! How long have you been blogging
for? you made blogging look easy. The overall look of your site is
magnificent, as well as the content! My web site: cheap fut 18 coins (malaysiantheatre.com)
Hey I know this is off topic but I was wondering if you knew of any
widgets I could add to my blog that automatically tweet my newest twitter
updates. I’ve been looking for a plug-in like this for quite
some time and was hoping maybe you would have some experience with something like this.
Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new
updates. Visit my web page … h1z1 items (dautruongonline.net)
My spouse and I absolutely love your blog and find many of
your post’s to be what precisely I’m looking for.
Does one offer guest writers to write content available for
you? I wouldn’t mind writing a post or elaborating on some of the subjects you write related
to here. Again, awesome weblog! Have a look at my site — nba mobile coins (Shad)
This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your wonderful post.
Also, I have shared your web site in my social networks! My webpage — buy fut 18 coins (Luella)
I am sure this paragraph has touched all the internet viewers, its really really fastidious paragraph on building up new weblog. Also visit my web blog: cheap madden mobile coins (Nathaniel)
Have you ever thought about publishing an e-book or guest authoring on other websites? I have a blog based on the same information you discuss and would really like to
have you share some stories/information. I know my viewers would value your work.
If you are even remotely interested, feel free to shoot me an email. Also visit my weblog; cheap nba mobile coins
I think this is among the such a lot important information for me.
And i’m glad studying your article. However want to commentary on few
normal things, The web site taste is perfect, the articles is in point of fact great :
D. Just right job, cheers Feel free to visit my web page … madden mobile coins (Debra)
Great article, totally what I was looking for. Here is my web site; eyelash extentions
Hi are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get
started and set up my own. Do you need any html coding
knowledge to make your own blog? Any help would be greatly
appreciated! Take a look at my homepage: cheap fifa 18 coins
I could not resist commenting. Very well written! My page :: nba live coins (hoperly.com)
I was suggested this website by my cousin. I am not sure whether
this post is written by him as no one else know such detailed about my problem.
You are amazing! Thanks! Look into my web-site; csgo skins sites (http://3monarchs.com)
Good day I am so happy I found your web site, I really found you by
accident, while I was searching on Bing for something else, Nonetheless I am here now
and would just like to say thanks for a marvelous post and a
all round thrilling blog (I also love the theme/design), I don’t have time to
read it all at the moment but I have saved it and also included your RSS feeds, so when I have time I will
be back to read a lot more, Please do keep up the awesome work.
Woah! I’m really digging the template/theme of this site. It’s simple, yet effective. A lot of times it’s very difficult to get
that «perfect balance» between usability and appearance.
I must say you’ve done a excellent job with this. In addition, the blog loads very fast for me on Opera.
Excellent Blog!
Thanks a lot for sharing this with all of us you really recognize what you’re speaking about!
Bookmarked. Please also seek advice from my website =). We will have a hyperlink alternate contract among us
Wonderful goods from you, man. I have understand your stuff previous to
and you’re just too fantastic. I actually like what you have acquired here, really like what you’re saying and the way in which you say it.
You make it entertaining and you still care for to keep it sensible.
I can’t wait to read far more from you. This is actually a tremendous
site.
I have read so many content about the blogger lovers except this article is truly a good post, keep
it up.
This website was… how do you say it? Relevant!!
Finally I’ve found something that helped me.
Thank you!
I blog often and I genuinely thank you for your information. The
article has truly peaked my interest. I will bookmark your website and keep checking for new details about once a week.
I subscribed to your Feed too.
Thanks for the good writeup. It actually used to be a amusement account it.
Look complex to far delivered agreeable from you! By the way, how could we keep in touch?
Hey! I just wanted to ask if you ever have any
issues with hackers? My last blog (wordpress) was
hacked and I ended up losing many months of hard work due
to no data backup. Do you have any methods to prevent hackers?
I think the admin of this web page is really working hard for his web
site, because here every data is quality based material.
If some one wants to be updated with most up-to-date technologies therefore he must be
go to see this site and be up to date everyday.
Excellent post. I was checking continuously this blog and I am impressed!
Extremely helpful information specially the ultimate phase :
) I care for such information a lot. I was looking for this particular information for a long time.
Thank you and best of luck.
Hi there I am so delighted I found your weblog, I really
found you by error, while I was browsing on Yahoo for something else, Regardless
I am here now and would just like to say cheers for a
marvelous post and a all round enjoyable blog (I also love the
theme/design), I don’t have time to browse it all at the minute but I have saved it and also added your RSS feeds,
so when I have time I will be back to read more, Please do keep up the awesome jo.
Simply want to say your article is as surprising. The clearness in your publish is just cool and i can suppose
you’re a professional in this subject. Well together
with your permission allow me to grab your
RSS feed to keep up to date with imminent post. Thanks 1,000,000 and please
keep up the enjoyable work.
Useful info. Fortunate me I discovered your website by accident, and I am
surprised why this twist of fate didn’t came about in advance! I bookmarked it.
I don’t even know how I ended up here, but I thought this post
was good. I don’t know who you are but definitely you’re going to
a famous blogger if you are not already Cheers!
Hi there, all the time i used to check webpage posts here early in the dawn, for the reason that i enjoy to gain knowledge of more and more.
cialis 20 mg for sale
cialis online
cialis super active 20mg pills
cheap levitra generic
buy levitra online
cheap prices levitra

Оставить отзыв

Жёлтые поля обязательны к заполнению

   

Можете использовать теги <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang=""> <div class=""> <span class=""> <br>