<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Development and Research of Conveyor Structures of Binary Number Sorting Algorithms</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Volodymyr Gryga</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yaroslav Nykolaichuk</string-name>
          <email>ya.nykolaichuk@tneu.edu.ua</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nataliia Vozna</string-name>
          <email>n.vozna@ukr.net</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Artur Voronych</string-name>
          <email>a.voronych@it.nung.edu.ua</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Boris Krulikovskyi</string-name>
          <email>kboris@ukr.net</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>. Department of Computer Engineering and Electronics, Vasyl Stefanyk Precarpathian National University, UKRAINE</institution>
          ,
          <addr-line>Ivano-Frankivsk</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>. Department of Computer Engineering, National University of Water Management and Nature Resources Use, UKRAINE</institution>
          ,
          <addr-line>Rivne, 11</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>. Department of Computer Systems and Networks, Ivano-Frankivsk National Technical University of Oil and Gas, UKRAINE</institution>
          ,
          <addr-line>Ivano-</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>1</fpage>
      <lpage>3</lpage>
      <abstract>
        <p>The characteristics of the structures complexity of conveyor sorting devices, constructed on the basis of parallel algorithms for sorting binary arrays are analyzed. The improved structure of the conveyor sorting device, which compared to the known one had 1.9 times less hardware complexity and 1.5 times higher performance, was developed and researched. Modeling of VHDL models of conveyor sorting devices was carried out, their synthesis and implementation was made in the Xilinx FPGA by automated designing Vivado system applications. The received practical results of the complexity characteristic of the developed conveyor devices coincide with theoretical calculations. There are also determined the relevant areas of application of the developed devices.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Sorting is one of the common problems of data processing
and it is generally understood as a problem of placing
elements of disordered set of data sets values in order of
monotonic increase or decrease [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The sorting operation
takes on average 25% of machine time [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and it is most
often used in the tasks of digital processing of signals and
images, similar to convolution operations, fast Fourier
transform, and others [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We know many methods of
sequential and parallel sorting of binary numbers [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">1-9</xref>
        ]. There
is a large number of algorithms to organize sorting in modern
digital signal processors, and each of these algorithms has its
advantages and disadvantages. Performing a software sorting
operation is time-consuming and generally used to perform
consistent data sorting methods. Particularly effective is the
parallel performance of algorithm sorting operations using
hardware methods that significantly accelerate the execution
time of the algorithm. Such methods of parallel sorting
algorithms, in which the sequence of executed operations
only depends on the number of input data, are the following:
the Batcher’s method [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the modified "bubbles" method [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
the "pairwise-odd" permutation method, the fusion method
and other [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>If we use the hardware method, then there is ensured
implementation of the binary number sorting operation in real
time and the possibility of applying new circuit design
solutions with the use of a modern element base with an
orientation towards implementation in the FPGA form.</p>
      <p>The implementation of highly efficient conveyor devices
for sorting binary arrays requires extensive use of a modern
element base, the improvement of existing and the
development of new methods, algorithms and device
structures.</p>
      <p>In this regard, an important t ask is to develop efficient
structures for conveyor sorting devices (CSDs), which will
improve the time characteristics of multithreaded data
processing. The implementation of such devices in the
languages of the hardware description and their synthesis in
FPGA will enable the designer to choose the optimal
hardware cost and time-efficient characteristics of the
structure of the CSD.</p>
      <p>
        II. CONVEYOR STRUCTURES ANALYSIS OF PARALLEL
ALGORITHMS FOR BINARY NUMBERS SORTING
The conveyor processing principle involves the alignment
in time operators of the algorithms sorting on different data
[
        <xref ref-type="bibr" rid="ref5 ref6 ref7 ref8">5-8</xref>
        ].
      </p>
      <p>Conveyor structures of sorting devices of binary arrays is
developed and analyzed below. They are based on the known
parallel sorting algorithms presented in a graphical form, and
their hardware and time complexity are estimated. (Their
system characteristics)</p>
      <p>
        The hardware implementation of the known parallel
sorting algorithms in the conveyor structures involves the full
reflection of their flow graphs algorithm (tiered-parallel
algorithm forms) [
        <xref ref-type="bibr" rid="ref10 ref11 ref13 ref4 ref5 ref6 ref7 ref8">4-8,10,11,13</xref>
        ] into the structure of the
operating device. The vertices of the graph (functional
operators) will correspond to the hardware block (operation)
and the arcs will correspond to lines for the transmission of
input data of intermediate and final results. The conveyor
registers are placed on the lines that connect the operating
units of one tier with the operating units of the previous tier.
      </p>
      <p>
        Tier-parallel algorithm forms determines the degree of
parallelism of the graph (the maximum number of vertices in
a single tier or the width of the graph), as well as the
minimum-possible time of calculation of the given algorithm
(number of tiers or height of the graph) [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">6-8</xref>
        ].
      </p>
      <p>
        It is shown the structure of the CSD in Fig. 1, which is
based on the numbers sorting by modified “bubbles” sorting
method [
        <xref ref-type="bibr" rid="ref1 ref13">1,13</xref>
        ].
      </p>
      <p>x1
Rg1
x2
Rg2
x3
Rg3
x4</p>
      <p>Rg4
Rg13</p>
      <p>Rg14</p>
      <p>Rg15</p>
      <p>Rg16
Rg37</p>
      <p>Rg38</p>
      <p>Rg39</p>
      <p>Rg40</p>
      <p>Rg41</p>
      <p>Rg42
Rg5</p>
      <p>Rg6</p>
      <p>Rg7</p>
      <p>Rg8</p>
      <p>The basis for the above-presented structure of conveyor
sorting device is the basic sorting elements (BSE) and
conveyor register (Rg).</p>
      <p>The structure of this conveyor device consists of the same
basic sorting operations (max/min). CSD structure (Fig. 1)
contains N(N-1)/2 basic sorting operations and N(2N-3)
conveyor registers for input N values.</p>
      <p>The time complexity of this conveyor device structure is
determined by the critical distribution of the signal through
(2N-3) basic operations of sorting and
(2N-3)+1 conveyor registers.</p>
      <p>
        It is shown the structure of the CSD in Fig. 2, which is
constructed on the basis of sorting algorithm by
"pairwiseodd" permutation method [
        <xref ref-type="bibr" rid="ref13 ref2">2,13</xref>
        ].
      </p>
      <p>CSD structure (Fig. 2) contains N(N-1)/2 basic sorting
operations and (N × N) conveyor registers for N input values.</p>
      <p>The time complexity of this conveyor device structure is
determined by the critical distribution of the signal through N
basic operations of sorting and (N+1) conveyor registers.</p>
      <p>It is shown the CSD structure in Fig. 3, which is
constructed on the basis of the sorting algorithm graph by</p>
      <sec id="sec-1-1">
        <title>Batcher’s method [3,13].</title>
        <p>x1
Rg1
x2
Rg2
x3
Rg3
x4
Rg4
x5
Rg5
x6
Rg6
BSE1</p>
        <p>BSE2</p>
        <p>BSE3
Rg7</p>
        <p>Rg8</p>
        <p>Rg9</p>
        <p>Rg10</p>
        <p>Rg11</p>
        <p>Rg12
BSE4</p>
        <p>BSE5
Rg13</p>
        <p>Rg14</p>
        <p>Rg15</p>
        <p>Rg16</p>
        <p>Rg17</p>
        <p>Rg18
BSE6</p>
        <p>BSE7</p>
        <p>BSE8
Rg19</p>
        <p>Rg20</p>
        <p>Rg21</p>
        <p>Rg22</p>
        <p>Rg23</p>
        <p>Rg24
BSE9</p>
        <p>BSE10
Rg25</p>
        <p>Rg26</p>
        <p>Rg27</p>
        <p>Rg28</p>
        <p>Rg29</p>
        <p>Rg30
BSE11</p>
        <p>BSE12</p>
        <p>BSE13
Rg31</p>
        <p>Rg32</p>
        <p>Rg33</p>
        <p>Rg34</p>
        <p>Rg35</p>
        <p>Rg36
BSE14</p>
        <p>BSE15
y1 y2 y3 y4 y5 y6
Fig.2. The structure of Conveyor sorting device for 6 values by
"pairwise-odd" permutation method.
x1 x2 x3 x4 x5 x6 x7 x8
Rg1</p>
        <p>Rg2</p>
        <p>Rg3</p>
        <p>Rg4</p>
        <p>Rg5</p>
        <p>Rg6</p>
        <p>Rg7</p>
        <p>Rg8
BSE1</p>
        <p>BSE2</p>
        <p>BSE3</p>
        <p>BSE4
Rg9</p>
        <p>Rg10</p>
        <p>Rg11</p>
        <p>Rg12</p>
        <p>Rg13</p>
        <p>Rg14</p>
        <p>Rg15</p>
        <p>Rg16
BSE5</p>
        <p>BSE6</p>
        <p>BSE7</p>
        <p>BSE8
Rg17</p>
        <p>Rg18</p>
        <p>Rg19</p>
        <p>Rg20</p>
        <p>Rg21</p>
        <p>Rg22</p>
        <p>Rg23</p>
        <p>Rg24
BSE9</p>
        <p>BSE10
Rg25</p>
        <p>Rg26</p>
        <p>Rg27</p>
        <p>Rg28</p>
        <p>Rg29</p>
        <p>Rg30</p>
        <p>Rg31</p>
        <p>Rg32
BSE11</p>
        <p>BSE12</p>
        <p>BSE13</p>
        <p>BSE14
Rg33</p>
        <p>Rg34</p>
        <p>Rg35</p>
        <p>Rg36</p>
        <p>Rg37</p>
        <p>Rg38</p>
        <p>Rg39</p>
        <p>Rg40
BSE15</p>
        <p>BSE16</p>
        <p>BSE17
Rg41</p>
        <p>Rg42</p>
        <p>Rg43</p>
        <p>Rg44</p>
        <p>Rg45</p>
        <p>Rg46</p>
        <p>Rg47</p>
        <p>Rg48
BSE18</p>
        <p>BSE19
Rg49</p>
        <p>Rg50</p>
        <p>Rg51</p>
        <p>Rg52</p>
        <p>Rg53</p>
        <p>Rg54</p>
        <p>Rg55</p>
        <p>Rg56
y1
y2
y3
y4
y5
y6
y7
y8</p>
        <p>CSD structure (Fig. 3) contains 0, 48Nln2 N basic sorting
operations and 1 (log2 N ) ([log2 N + 1]) × N conveyor
2
registers for N input values.</p>
        <p>The time complexity of this conveyor device structure is
determined by the critical distribution of the signal through
1 (log2 N ) (log2 N +1) basic operations of sorting and (N-1)
2
conveyor registers.</p>
        <p>The conveyor structures of the sorting devices (Fig. 1-3)
consist of the same type of basic sorting elements that
compare two numbers and more of them are sent to the first
output and less to the second output. The internal structure of
sorting basic element is presented in Fig. 4.</p>
        <p>М1
Y1(Min)</p>
        <p>X1</p>
        <p>X 2
Comparison</p>
        <p>Scheme
1
М2
Y (Max)
2</p>
        <p>
          When comparing two numbers (X1, X2) in the comparison
scheme "for more" (X1&gt; X2), the output of the scheme is
formed a comparison sign, the direct value of which controls
the multiplexer M1, to issue a smaller number to the output
(Y1) and the inverse value controls the multiplexer M2 to
issue a larger number at the output (Y2) [
          <xref ref-type="bibr" rid="ref13 ref5">5,13</xref>
          ].
        </p>
        <p>
          The internal structure of the comparison scheme can be
constructed on the basis of logical elements [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] or accelerated
carry adders [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>
          The calculation of the hardware and time complexity of
different comparison schemes and 2-input multiplexers is
given in paper [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>With the account to these data, the hardware complexity of
the CSD by the modified "bubbles" method for N = 8 and
n= 4 equals:</p>
        <p>ACCSD = N × (N -1)/2 × (ACS + 2 × AMP )+(n × AREG ×
×LREG ) = 28 × (24 + 56)+(4 × 4 ×112) = 4032 (gates),
where ACCSD - hardware complexity of classical CSD,
ACS - hardware complexity of comparison scheme,
τ CS - time complexity of comparison scheme,
τ MP - time complexity of multiplexer,</p>
        <p>The bubble CSD (Fig. 1) can be improved by performing
independent base-sorting operations separately for the first
and second half of the input data on the two conveyor
structures.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Values X</title>
      <p>i</p>
      <p>are already ordered by recession and need to be
further applied to (( N 2)2 − N 2) / 2 + N 2 basic sorting
elements and 4N conveyor registers.</p>
      <p>It is shown an improved CSD for 4-bit binary numbers
(n = 4) for 8 input values (N =8) in Fig. 5.</p>
      <p>x8 x7 x6 x5 x4 x3 x2 x1
Rg8</p>
      <p>Rg7</p>
      <p>Rg6</p>
      <p>Rg5</p>
      <p>Rg4</p>
      <p>Rg3</p>
      <p>Rg2</p>
      <p>Rg1
BSE2</p>
      <p>BSE1
Rg16</p>
      <p>Rg15</p>
      <p>Rg14</p>
      <p>Rg13</p>
      <p>Rg12</p>
      <p>Rg11</p>
      <p>Rg10</p>
      <p>Rg9
BSE3</p>
      <p>BSE9
BSE4</p>
      <p>BSE10
Rg24</p>
      <p>Rg23</p>
      <p>Rg22</p>
      <p>Rg21</p>
      <p>Rg20</p>
      <p>Rg19</p>
      <p>Rg18</p>
      <p>Rg17
BSE8</p>
      <p>BSE7</p>
      <p>BSE6</p>
      <p>BSE5
Rg32</p>
      <p>Rg31</p>
      <p>Rg30</p>
      <p>Rg29</p>
      <p>Rg28</p>
      <p>Rg27</p>
      <p>Rg26</p>
      <p>Rg25
Rg40</p>
      <p>Rg39</p>
      <p>Rg38</p>
      <p>Rg37</p>
      <p>Rg36</p>
      <p>Rg35</p>
      <p>Rg34</p>
      <p>Rg33
BSE12</p>
      <p>BSE11
Rg48</p>
      <p>Rg47</p>
      <p>Rg46</p>
      <p>Rg45</p>
      <p>Rg44</p>
      <p>Rg43</p>
      <p>Rg42</p>
      <p>Rg41
BSE16</p>
      <p>BSE15</p>
      <p>BSE14</p>
      <p>BSE13
Rg56</p>
      <p>Rg55</p>
      <p>Rg54</p>
      <p>Rg53</p>
      <p>Rg52</p>
      <p>Rg51</p>
      <p>Rg50</p>
      <p>Rg49
BSE19</p>
      <p>BSE18</p>
      <p>BSE17
Rg64</p>
      <p>Rg63</p>
      <p>Rg62</p>
      <p>Rg61</p>
      <p>Rg60</p>
      <p>Rg59</p>
      <p>Rg58</p>
      <p>Rg57
BSE20</p>
      <p>BSE21</p>
      <p>BSE22
Rg72</p>
      <p>Rg71</p>
      <p>Rg70</p>
      <p>Rg69</p>
      <p>Rg68</p>
      <p>Rg67</p>
      <p>Rg66</p>
      <p>Rg65
Rg80</p>
      <p>Rg79</p>
      <p>Rg78</p>
      <p>R77</p>
      <p>Rg76</p>
      <p>Rg75</p>
      <p>Rg74</p>
      <p>Rg73
y8
y7 y6 y5 y4 y3 y2</p>
      <sec id="sec-2-1">
        <title>Fig.5. An improved structure of the CSD</title>
        <p>y1</p>
        <p>The number of basic sorting elements for this CSD for the
binary numbers is equal to 3(( N 2)2 − N 2)) / 2 + N 2 , and
the number of conveyor registers is 6N + 4N for N input
values.</p>
        <p>The hardware complexity of an improved CSD for N = 8
and n = 4 is equal to:</p>
        <p>
          AICSD = 22 × (ACS + 2 × AMP )+(n × AREG × LREG ) =
=22 × (16 + 24)+(4 × 4 × 80) =2160 (gates),
AMP
where AICSD - hardware complexity of improved CSD,
ACS - hardware complexity of improved comparison scheme
[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ],
        </p>
        <p>
          - hardware complexity of improved multiplexer [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ],
AREG - hardware complexity of register,
LREG -quantity of conveyor register.
        </p>
        <p>The time complexity of such CSD is equal to:
τ ICSD = (τ CS +τ MP ) + (10 ×τ REG ) =</p>
        <p>= (3 + 2) + (10 × 2) = 25ν (micro − cycles),
where τ CCSD - time complexity of classical CSD;
τ CS - time complexity of comparison scheme;
τ MP - time complexity of multiplexer;
τ REG - time complexity of register.</p>
        <p>So, in comparison with the classic device, we get a
reduction in the hardware complexity in K =4032 2160 =1,9
times and increase the speed in K</p>
        <p>τ
IV. RESULTS OF THE CONVEYOR SORTING DEVICES</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>RESEARCH</title>
      <p>It is shown a dependence graph of logical elements
(valves) number on the input data number for the conveyor
structures of the known (classical) and improved sorting
devices by the modified "bubbles" method.</p>
      <p>A
=37 25 =1, 5 time.</p>
      <p>It is shown in the graph that the time complexity of an
improved CSD requires about 1.5 times less microtacts than
the classical CSD.</p>
      <p>V. RESULTS OF CSD’S SIMULATION AND SYNTHESIS</p>
    </sec>
    <sec id="sec-4">
      <title>ON FPGA</title>
      <p>Structures of classical and improved CSD for 8 input
–onebyte numbers are described in VHDL (Virtual Hardware
Description Language). The simulation of the developed
CSDs on the functional level was carried out, their RTL
circuits were obtained and the Xilinx FPGA synthesis was
performed.</p>
      <p>It is shown in Fig. 8 a functional diagram of the improved</p>
      <sec id="sec-4-1">
        <title>CSD operation for 8 input one-byte numbers.</title>
        <p>The graph shows that the number of logical elements for
an improved CSD is 1.9 times less than for a classic CSD.</p>
        <p>It is shown a graph of the dependence of the time
complexity in Fig. 7 expressed in the microtacts on the input
data value for the structures of the known (classical) CSD
and the improved CSD with the modified "bubbles" method.</p>
        <p>The diagram shows that an array of unsorted 8-bit values is
given at the inputs of the CSD (D_in1, ..., D_in8) on the 1st
cycle. Then we get a sorted descending order at the outputs
(D_out1, ..., D_out8) at the 9th cycle.</p>
        <p>It is shown in Fig. 9 the topology view of improved CSD
with the VHDL implementation model on the
xc7a100tcsg324-1 crystal (Artix-7 family) of the Xilinx
firmware by Vivado CAD.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Classic CSD</title>
      </sec>
      <sec id="sec-4-3">
        <title>Blocks</title>
        <p>quantity</p>
      </sec>
      <sec id="sec-4-4">
        <title>FPGA (CLB)</title>
      </sec>
      <sec id="sec-4-5">
        <title>Clock frequency (MHz)</title>
      </sec>
      <sec id="sec-4-6">
        <title>Improved CSD</title>
      </sec>
      <sec id="sec-4-7">
        <title>Blocks</title>
        <p>quantity</p>
      </sec>
      <sec id="sec-4-8">
        <title>FPGA (CLB)</title>
      </sec>
      <sec id="sec-4-9">
        <title>Clock</title>
        <p>frequency</p>
        <p>(MHz)
475
174,7
Fig.9. View of the crystal topology of CSD during implementation
at the FPGA</p>
        <p>Vivado CAD tools placed the implemented VHDL project
of the improved CSD almost in the center of the crystal.</p>
        <p>Table 1 presents the results of the synthesis of
implemented CSDs for sorting 8 one-byte numbers on the</p>
      </sec>
      <sec id="sec-4-10">
        <title>FPGA of the Xilinx firmware.</title>
        <p>As can be seen from Table 1, experimental results coincide
with analytical calculations.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>VI. CONCLUSION</title>
      <p>During the research of CSDs it is determined that they are
widely used in multithreaded data processing, and are often
used in digital processing of signals, images and sorting
networks for the rapid transfer of large data arrays.</p>
      <p>The improved structure of the CSD of binary arrays by the
modified "bubble" method was developed, the hardware and
time complexity calculation was performed.</p>
      <p>As a result of the comparison with the classical CSD for
binary number array by the modified bubble method it is
received decreasing the cost of the equipment in 1.9 times
and increasing of speed in 1.5 times, which is confirmed by
the results of the practical implementation of the Xilinx</p>
      <sec id="sec-5-1">
        <title>FPGA.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Knuth</surname>
          </string-name>
          ,
          <article-title>The art of computer programming, V.3: Transl. from eng</article-title>
          . М.: “Peace”, pp.
          <fpage>841</fpage>
          ,
          <year>1978</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Braunl</surname>
          </string-name>
          ,.
          <source>Parallel Programming: Transl. from german</source>
          ,К.: Vyscha Shkola., pp.
          <fpage>358</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.Y.</given-names>
            <surname>Kung</surname>
          </string-name>
          ,
          <article-title>VLSI array processors</article-title>
          .
          <source>Trans. from English - М.: “Peace”</source>
          , pp.
          <fpage>672</fpage>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Thomas</surname>
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Cormen</surname>
            , Charles E. Leiserson, Ronald L. Rivest and
            <given-names>Clifford</given-names>
          </string-name>
          <string-name>
            <surname>Stein</surname>
          </string-name>
          .
          <article-title>Introduction to algorithms, 3rd edition</article-title>
          , Massachusetts Institute of Technology, pp.
          <fpage>1313</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Melnyk</surname>
          </string-name>
          ,
          <article-title>Memory with ordered access: monograph</article-title>
          , Lviv: Press Lviv Polytechnic, pp.
          <fpage>296</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Melnyk</surname>
          </string-name>
          , Computer Architecture, Lutsk:Regional publisher, pp.
          <fpage>470</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Voevodin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Parallel</given-names>
            <surname>Computing</surname>
          </string-name>
          .
          <article-title>Textbook for high schools</article-title>
          ,
          <source>BHV:Peter</source>
          , pp.
          <fpage>608</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Andrew</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tanenbaum Computer</surname>
          </string-name>
          Architecture Austin. 6th ed.,
          <source>St</source>
          . Petersburg: “Peter”, pp.
          <fpage>816</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kehret</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Walz</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Sikora</surname>
          </string-name>
          , “
          <article-title>Integration of hardware security modules into a deeply embedded TLS stack</article-title>
          ”
          <source>International Journal of Computing</source>
          , vol.
          <volume>15</volume>
          , issue 1, pp.
          <fpage>24</fpage>
          -
          <lpage>32</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>V.</given-names>
            <surname>Zadiraka</surname>
          </string-name>
          , Ya. Nykolaichuk.
          <article-title>Methods of effective protection of information flows</article-title>
          , Ternopil: Terno-graf, pp.
          <fpage>308</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Melnychuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Voronych</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Nykolaichuk</surname>
          </string-name>
          and
          <string-name>
            <surname>B. Krulikovskyi “</surname>
          </string-name>
          <article-title>The Structure and Components of Embedded Special Processors for Determination of Entropy Signals and Random Massages” Perspective technologies and methods in MEMS design</article-title>
          .
          <source>Proceedings of XIIIth International Conference. MEMSTECH</source>
          <year>2017</year>
          ,
          <article-title>Lviv-</article-title>
          <string-name>
            <surname>Svalyava</surname>
          </string-name>
          , Ukraine, pp.
          <fpage>81</fpage>
          -
          <lpage>84</lpage>
          , February,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Krulikovskyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Davletova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gryga</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Nykolaichuk</surname>
          </string-name>
          <article-title>“Synthesis of Components of High Performance Special Proccessors of Execution of Arithmetic and Logical Operations Dsts Proccessing in Theoretical and Numerical Basis Rademacher”</article-title>
          ,
          <source>Proceedings of XIVth International Conference. CADSM'</source>
          <year>2017</year>
          ,
          <string-name>
            <surname>Lviv-Poljana</surname>
          </string-name>
          , Ukraine, pp.
          <fpage>214</fpage>
          -
          <lpage>217</lpage>
          , February,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>V.</given-names>
            <surname>Gryga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Nykolaichuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Vozna</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Krulikovskyi</surname>
          </string-name>
          “
          <article-title>Synthesis of a microelectronic structure of a specialized processor for sorting an array of binary numbers” Perspective technologies and methods in MEMS design</article-title>
          .
          <source>Proceedings of XIIIth International Conference. MEMSTECH</source>
          <year>2017</year>
          ,
          <article-title>Lviv-</article-title>
          <string-name>
            <surname>Svalyava</surname>
          </string-name>
          , Ukraine, pp.
          <fpage>170</fpage>
          -
          <lpage>173</lpage>
          , April,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>V.</given-names>
            <surname>Gryga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kolosov</surname>
          </string-name>
          and
          <string-name>
            <surname>O. Danyluk “</surname>
          </string-name>
          <article-title>The development of a fast iterative algorithm structure of cosine transform” The Experience of Designing and Application of CAD System in Microelectronics</article-title>
          . Proceedings of XIIIth International Conference. TCSET'
          <year>2016</year>
          ,
          <string-name>
            <surname>Lviv-Poljana</surname>
          </string-name>
          , Ukraine, pp.
          <fpage>506</fpage>
          -
          <lpage>509</lpage>
          , February,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dunets</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Gryga</surname>
          </string-name>
          “
          <article-title>Spatio-temporal synthesis of transformation matrix of reverse fast cosine transformation”</article-title>
          ,
          <source>Proceedings of XIIIth International Conference. CADSM'</source>
          <year>2015</year>
          ,
          <string-name>
            <surname>Lviv-Poljana</surname>
          </string-name>
          , Ukraine, pp.
          <fpage>45</fpage>
          -
          <lpage>49</lpage>
          , February,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>